Add Tests and best practices #65
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
# orchestrate-workflow.yml | |
name: 🎯 Orchestrate Airflow Validations | |
on: # yamllint disable-line rule:truthy | |
pull_request: | |
paths: | |
- orchestrate/* | |
- orchestrate/**/* | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
# This cancels a run if another change is pushed to the same branch | |
concurrency: | |
group: orchestrate-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
airflow: | |
name: Pull Request Airflow Tests | |
runs-on: ubuntu-latest | |
# container: datacoves/ci-airflow-dbt-snowflake:3.2 | |
container: datacoves/ci-airflow-dbt-snowflake:3.3.202411201524-3c0ba965 | |
env: | |
AIRBYTE__EXTRACT_LOCATION: /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }}/load | |
AIRFLOW__CORE__DAGS_FOLDER: /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }}/orchestrate/dags | |
AIRFLOW__CORE__DAGBAG_IMPORT_TIMEOUT: 300 | |
AIRFLOW__ARTIFACTS_PATH: /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }}/orchestrate | |
DBT_PROFILES_DIR: /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }}/automate/dbt | |
DATACOVES__DBT_HOME: /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }}/transform | |
DATACOVES__REPO_PATH: /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }} | |
PYTHONPATH: /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }} | |
FORCE_COLOR: 1 | |
steps: | |
- name: Checkout branch | |
uses: actions/[email protected] | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Test DAG structure integrity (DagBag Loading) | |
run: "python /usr/app/load_dagbag.py" | |
- name: Test DBT Sources against DAGs' YAML files | |
run: "python /usr/app/test_dags.py --dag-loadtime-threshold 1 --check-variable-usage" | |
# - name: Custom Airflow Testss | |
# run: "pytest $AIRFLOW__ARTIFACTS_PATH/test_dags/validate_dags.py" | |
- name: Custom Airflow Tests | |
uses: ./.github/actions/pytest-with-warnings | |
with: | |
pytest_args: "$AIRFLOW__ARTIFACTS_PATH/test_dags/validate_dags.py" |