Update from Copier (2026-09-06T09-12-56Z) #552
Workflow file for this run
This file contains hidden or 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
| 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@ec67f82b3bd863948308a41ecb9e70547cbb19c7 | |
| 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@ec67f82b3bd863948308a41ecb9e70547cbb19c7 | |
| with: | |
| module: airflow_pydantic | |
| - name: Test source distribution | |
| uses: actions-ext/python/test-sdist@ec67f82b3bd863948308a41ecb9e70547cbb19c7 | |
| 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' }} |