Skip to content

Merge pull request #206 from airflow-laminar/dependabot/github_action… #550

Merge pull request #206 from airflow-laminar/dependabot/github_action…

Merge pull request #206 from airflow-laminar/dependabot/github_action… #550

Workflow file for this run

name: Build Status
on:
push:
branches:
- main
tags:
- v*
paths-ignore:
- LICENSE
- README.md
pull_request:
branches:
- main
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read
checks: write
pull-requests: write
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: ["3.11"]
airflow: ["2", "3", ""]
laminar: ["laminar", "no-laminar"]
ccflow: ["ccflow", "no-ccflow"]
exclude:
# Skip laminar checks when no airflow
- airflow: ""
laminar: "laminar"
# Skip laminar checks with ccflow
- laminar: "laminar"
ccflow: "ccflow"
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Setup Python
uses: actions-ext/python/setup@a3f3953ef26a519ab7b6a56b94d06fa1b31ab3f3
with:
version: ${{ matrix.python-version }}
- name: Install dependencies
run: make develop
- name: Install Laminar dependencies
run: uv pip install -e .[laminar]
if: ${{ matrix.laminar == 'laminar' }}
- name: Install Airflow 2.x
run: uv pip install -e .[airflow]
if: ${{ matrix.laminar == 'no-laminar' && matrix.airflow == '2' }}
- name: Install Airflow 3.x
run: uv pip install -e .[airflow3]
if: ${{ matrix.laminar == 'no-laminar' && matrix.airflow == '3' }}
- name: Lint
run: make lint
- name: Checks
run: make checks
- name: Build
run: make build
- name: Test
run: make test
if: ${{ matrix.laminar == 'no-laminar' }}
- name: Test (ccflow)
run: AIRFLOW_PYDANTIC_ENABLE_CCFLOW=1 make test
if: ${{ matrix.ccflow == 'ccflow' }}
- name: Test (coverage)
run: make coverage
if: ${{ matrix.laminar == 'laminar' }}
- name: Upload test results (Python)
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: test-results-${{ matrix.os }}-${{ matrix.python-version }}
path: junit.xml
if: ${{ matrix.airflow == '2' && matrix.laminar == 'laminar' }}
- name: Publish test results
uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2.24.0
with:
files: '**/junit.xml'
if: ${{ matrix.airflow == '2' && matrix.laminar == 'laminar' }}
- name: Upload coverage
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
if: ${{ matrix.airflow == '2' && matrix.laminar == 'laminar' }}
- name: Build distributions
run: make dist
if: ${{ matrix.airflow == '2' && matrix.laminar == 'laminar' }}
- name: Test wheel
uses: actions-ext/python/test-wheel@a3f3953ef26a519ab7b6a56b94d06fa1b31ab3f3
with:
module: airflow_pydantic
- name: Test source distribution
uses: actions-ext/python/test-sdist@a3f3953ef26a519ab7b6a56b94d06fa1b31ab3f3
with:
module: airflow_pydantic
- name: Upload distributions
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: dist-${{matrix.os}}
path: dist
if: ${{ matrix.airflow == '2' && matrix.laminar == 'laminar' }}