This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch backport-ci-20261025-v3-4-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 011e84dbb1153d8eab07420746aa371d2456facc Author: Jarek Potiuk <[email protected]> AuthorDate: Sun Oct 25 19:28:59 2026 +0100 Run shared distribution tests in a single CI job (#74566) * Run shared distribution tests in a single CI job The shared distributions matrix starts one runner per directory in shared/ (14 today) on every PR. Each leg spends ~15s on checkout and uv setup to run ~2-4s of tests, and the fan-out takes 14 of the 20 concurrent jobs ASF allows per workflow. Running the distributions sequentially in one job keeps the same coverage, reports every failing distribution, and frees those slots. * Run each shared distribution with uv --exact for isolation * Wrap the shared distributions test loop line to satisfy yamllint Generated-by: Claude Opus 5 --------- Co-authored-by: Jarek Potiuk <[email protected]> (cherry picked from commit 6b42e65a8ea366cd0e517e7bd79c2400fb92f4dc) --- .github/workflows/basic-tests.yml | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/.github/workflows/basic-tests.yml b/.github/workflows/basic-tests.yml index f815fe936e9..4212f4bd872 100644 --- a/.github/workflows/basic-tests.yml +++ b/.github/workflows/basic-tests.yml @@ -131,14 +131,11 @@ jobs: working-directory: ./dev/breeze/ tests-shared-distributions: timeout-minutes: 10 - name: Shared ${{ matrix.shared-distribution }} tests + name: Shared distributions tests env: # Without a pin uv picks the runner's system Python, which can be older than Airflow supports. UV_PYTHON: "${{ inputs.default-python-version }}" - strategy: - fail-fast: false - matrix: - shared-distribution: ${{ fromJSON(inputs.shared-distributions-as-json) }} + SHARED_DISTRIBUTIONS: ${{ join(fromJSON(inputs.shared-distributions-as-json), ' ') }} runs-on: ${{ fromJSON(inputs.runners) }} steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" @@ -157,9 +154,20 @@ jobs: fi echo "Installing uv==${UV_VERSION}" pip install "uv==${UV_VERSION}" - - name: "Run shared ${{ matrix.shared-distribution }} tests" - run: uv run --group dev pytest --color=yes -n auto - working-directory: shared/${{ matrix.shared-distribution }} + - name: "Run shared distributions tests" + run: | + failed=() + for dist in ${SHARED_DISTRIBUTIONS}; do + echo "::group::Shared ${dist} tests" + if ! (cd "shared/${dist}" && uv run --exact --group dev pytest --color=yes -n auto); then + failed+=("${dist}") + fi + echo "::endgroup::" + done + if (( ${#failed[@]} )); then + echo "::error::Shared distribution tests failed: ${failed[*]}" + exit 1 + fi tests-scripts: timeout-minutes: 10 name: Scripts tests
