-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/chad/dags-deployment' into dags-…
…development
- Loading branch information
Showing
42 changed files
with
2,235 additions
and
105 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
name: Sync DAGs | ||
|
||
on: | ||
workflow_run: | ||
workflows: | ||
- 'DAGs Check' | ||
types: | ||
- completed | ||
pull_request: | ||
types: | ||
- closed | ||
|
||
jobs: | ||
deploy: | ||
runs-on: ubuntu-latest | ||
if: ${{ github.event.workflow_run.conclusion == 'success' }} | ||
steps: | ||
- uses: actions/checkout@master | ||
- uses: jakejarvis/s3-sync-action@master | ||
with: | ||
args: --exclude "*" --include "*dags.py" --delete | ||
env: | ||
AWS_S3_BUCKET: ${{ secrets.DAGS_S3_BUCKET }} | ||
AWS_ACCESS_KEY_ID: ${{ secrets.DAGS_S3_ACCESS_KEY_ID }} | ||
AWS_SECRET_ACCESS_KEY: ${{ secrets.DAGS_S3_SECRET_ACCESS_KEY }} | ||
AWS_REGION: 'us-west-2' | ||
SOURCE_DIR: 'dags' | ||
DEST_DIR: 'dags/rikolti' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
name: Dags Check | ||
on: | ||
push: | ||
paths: | ||
- 'dags/**' | ||
pull_request: | ||
branches: | ||
- main | ||
jobs: | ||
test: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.9" | ||
|
||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install -r dags/requirements.txt | ||
pip check | ||
- name: Lint dags with ruff | ||
run: | | ||
pip install ruff | ||
ruff check --format=github ./dags | ||
- name: Test with Pytest | ||
run: | | ||
pip install pytest apache-airflow | ||
cd dags || exit | ||
pytest tests.py -v |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
tests.py | ||
README.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
[[source]] | ||
url = "https://pypi.org/simple" | ||
verify_ssl = true | ||
name = "pypi" | ||
|
||
[packages] | ||
pytest = "*" | ||
apache-airflow = "*" | ||
|
||
[dev-packages] | ||
|
||
[requires] | ||
python_version = "3.9" |
Large diffs are not rendered by default.
Oops, something went wrong.
Empty file.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
# DAG exhibiting task flow paradigm in airflow 2.0 | ||
# https://airflow.apache.org/docs/apache-airflow/2.0.2/tutorial_taskflow_api.html | ||
# Modified for our use case | ||
|
||
import json | ||
|
||
from airflow.decorators import dag, task | ||
from airflow.utils.dates import days_ago | ||
|
||
# These args will get passed on to each operator | ||
# You can override them on a per-task basis during operator initialization | ||
default_args = { | ||
'owner': 'airflow', | ||
} | ||
@dag(default_args=default_args, schedule_interval="@daily", start_date=days_ago(2), tags=['example']) | ||
def dag_with_taskflow_api(): | ||
""" | ||
### TaskFlow API Tutorial Documentation | ||
This is a simple ETL data pipeline example which demonstrates the use of | ||
the TaskFlow API using three simple tasks for Extract, Transform, and Load. | ||
Documentation that goes along with the Airflow TaskFlow API tutorial is | ||
located | ||
[here](https://airflow.apache.org/docs/stable/tutorial_taskflow_api.html) | ||
""" | ||
@task() | ||
def extract(): | ||
""" | ||
#### Extract task | ||
A simple Extract task to get data ready for the rest of the data | ||
pipeline. In this case, getting data is simulated by reading from a | ||
hardcoded JSON string. | ||
""" | ||
data_string = '{"1001": 301.27, "1002": 433.21, "1003": 502.22}' | ||
|
||
order_data_dict = json.loads(data_string) | ||
return order_data_dict | ||
@task(multiple_outputs=True) | ||
def transform(order_data_dict: dict): | ||
""" | ||
#### Transform task | ||
A simple Transform task which takes in the collection of order data and | ||
computes the total order value. | ||
""" | ||
total_order_value = 0 | ||
|
||
for value in order_data_dict.values(): | ||
total_order_value += value | ||
|
||
return {"total_order_value": total_order_value} | ||
@task() | ||
def load(total_order_value: float): | ||
""" | ||
#### Load task | ||
A simple Load task which takes in the result of the Transform task and | ||
instead of saving it to end user review, just prints it out. | ||
""" | ||
|
||
print("Total order value is: %.2f" % total_order_value) | ||
order_data = extract() | ||
order_summary = transform(order_data) | ||
load(order_summary["total_order_value"]) | ||
dag_with_taskflow_api = dag_with_taskflow_api() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
from unittest import TestCase | ||
|
||
from airflow.models import DagBag | ||
|
||
DAGS_FOLDER = "." | ||
|
||
|
||
class HarvestDagsTest(TestCase): | ||
def dag_bag(self): | ||
return DagBag(dag_folder=DAGS_FOLDER, include_examples=False) | ||
|
||
def test_no_import_errors(self): | ||
assert not self.dag_bag().import_errors |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
import json | ||
import os | ||
|
||
import boto3 | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.