This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch test-image-cache in repository https://gitbox.apache.org/repos/asf/airflow.git
commit c3666f8336cc7e49a0e3718329f3876ced877e0c Author: Jarek Potiuk <[email protected]> AuthorDate: Mon Mar 18 11:13:18 2024 +0100 Test image check --- .github/workflows/ci.yml | 870 +++++++++++++++---------------- .github/workflows/early-image-checks.yml | 252 ++++----- 2 files changed, 561 insertions(+), 561 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c6c4cfd352..132b74586e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -261,438 +261,438 @@ jobs: include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} debug-resources: ${{ needs.build-info.outputs.debug-resources }} - static-checks: - timeout-minutes: 45 - name: "Static checks" - runs-on: ${{fromJSON(needs.build-info.outputs.runs-on)}} - needs: [build-info, wait-for-ci-images] - env: - RUNS_ON: "${{needs.build-info.outputs.runs-on}}" - PYTHON_MAJOR_MINOR_VERSION: "${{needs.build-info.outputs.default-python-version}}" - UPGRADE_TO_NEWER_DEPENDENCIES: "${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}" - if: > - needs.build-info.outputs.basic-checks-only == 'false' && - needs.build-info.outputs.latest-versions-only != 'true' - steps: - - name: "Cleanup repo" - shell: bash - run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*" - - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" - uses: actions/checkout@v4 - with: - persist-credentials: false - - name: Cleanup docker - uses: ./.github/actions/cleanup-docker - - name: > - Prepare breeze & CI image: ${{needs.build-info.outputs.default-python-version}}:${{env.IMAGE_TAG}} - uses: ./.github/actions/prepare_breeze_and_image - id: breeze - - name: Cache pre-commit envs - uses: actions/cache@v4 - with: - path: ~/.cache/pre-commit - # yamllint disable-line rule:line-length - key: "pre-commit-${{steps.breeze.outputs.host-python-version}}-${{ hashFiles('.pre-commit-config.yaml') }}" - restore-keys: | - pre-commit-${{steps.breeze.outputs.host-python-version}}- - - name: "Static checks" - run: breeze static-checks --all-files --show-diff-on-failure --color always --initialize-environment - env: - VERBOSE: "false" - SKIP: ${{ needs.build-info.outputs.skip-pre-commits }} - COLUMNS: "250" - SKIP_GROUP_OUTPUT: "true" - DEFAULT_BRANCH: ${{ needs.build-info.outputs.default-branch }} - RUFF_FORMAT: "github" - - mypy: - name: "MyPy tests" - uses: ./.github/workflows/mypy.yml - needs: [build-info, wait-for-ci-images] - permissions: - contents: read - packages: read - secrets: inherit - with: - runs-on: ${{ needs.build-info.outputs.runs-on }} - mypy-folders: ${{ needs.build-info.outputs.mypy-folders }} - image-tag: ${{ needs.build-info.outputs.image-tag }} - default-python-version: ${{ needs.build-info.outputs.default-python-version }} - needs-mypy: ${{ needs.build-info.outputs.needs-mypy }} - if: needs.build-info.outputs.latest-versions-only != 'true' - - docs: - name: "Docs" - uses: ./.github/workflows/docs.yml - needs: [build-info, wait-for-ci-images] - permissions: - contents: read - packages: read - secrets: inherit - if: > - needs.build-info.outputs.docs-build == 'true' && - needs.build-info.outputs.latest-versions-only != 'true' - with: - runs-on: ${{ needs.build-info.outputs.runs-on }} - image-tag: ${{ needs.build-info.outputs.image-tag }} - default-branch: ${{ needs.build-info.outputs.default-branch }} - docs-list-as-string: ${{ needs.build-info.outputs.docs-list-as-string }} - default-python-version: ${{ needs.build-info.outputs.default-python-version }} - include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} - canary-run: ${{ needs.build-info.outputs.canary-run }} - - providers: - name: "Provider checks" - uses: ./.github/workflows/check-providers.yml - needs: [build-info, wait-for-ci-images] - permissions: - contents: read - packages: read - secrets: inherit - if: > - needs.build-info.outputs.skip-providers-tests != 'true' && - needs.build-info.outputs.latest-versions-only != 'true' - with: - runs-on: ${{ needs.build-info.outputs.runs-on }} - image-tag: ${{ needs.build-info.outputs.image-tag }} - default-python-version: ${{ needs.build-info.outputs.default-python-version }} - upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }} - affected-providers-list-as-string: ${{ needs.build-info.outputs.affected-providers-list-as-string }} - providers-compatibility-checks: ${{ needs.build-info.outputs.providers-compatibility-checks }} - skip-provider-tests: ${{ needs.build-info.outputs.skip-provider-tests }} - python-versions: ${{ needs.build-info.outputs.python-versions }} - - test-airflow-release-commands: - timeout-minutes: 80 - name: "Test Airflow release commands" - runs-on: ${{fromJSON(needs.build-info.outputs.runs-on)}} - needs: [build-info, wait-for-ci-images] - if: > - needs.build-info.outputs.is-self-hosted-runner == 'true' - && needs.build-info.outputs.is-airflow-runner == 'false' - env: - RUNS_ON: "${{needs.build-info.outputs.runs-on}}" - PYTHON_MAJOR_MINOR_VERSION: "${{needs.build-info.outputs.default-python-version}}" - steps: - - name: "Cleanup repo" - shell: bash - run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*" - - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" - uses: actions/checkout@v4 - with: - persist-credentials: false - - name: Cleanup docker - uses: ./.github/actions/cleanup-docker - - name: > - Prepare breeze & CI image: ${{needs.build-info.outputs.default-python-version}}:${{env.IMAGE_TAG}} - uses: ./.github/actions/prepare_breeze_and_image - - name: "Cleanup dist files" - run: rm -fv ./dist/* - - name: "Install required packages" - run: python -m pip install --editable ./dev/breeze/ - - name: "Check Airflow create minor branch command" - run: breeze release-management create-minor-branch --version-branch 2-4 -a y - - name: "Check Airflow RC process command" - run: | - breeze release-management start-rc-process --version 2.4.3rc1 --previous-version 2.4.2 -a y - - name: "Check Airflow release process command" - run: | - breeze release-management start-release --release-candidate 2.4.3rc1 --previous-release 2.4.2 -a y - - tests-helm: - name: "Helm tests" - uses: ./.github/workflows/helm-tests.yml - needs: [build-info, wait-for-ci-images] - permissions: - contents: read - packages: read - secrets: inherit - with: - runs-on: ${{ needs.build-info.outputs.runs-on }} - helm-test-packages: ${{ needs.build-info.outputs.helm-test-packages }} - image-tag: ${{ needs.build-info.outputs.image-tag }} - default-python-version: ${{ needs.build-info.outputs.default-python-version }} - if: > - needs.build-info.outputs.needs-helm-tests == 'true' && - needs.build-info.outputs.default-branch == 'main' && - needs.build-info.outputs.latest-versions-only != 'true' - - tests-postgres: - name: "Postgres tests" - uses: ./.github/workflows/run-unit-tests.yml - needs: [build-info, wait-for-ci-images] - permissions: - contents: read - packages: read - secrets: inherit - with: - runs-on: ${{ needs.build-info.outputs.runs-on }} - backend: "postgres" - test-name: "Postgres" - test-scope: "DB" - image-tag: ${{ needs.build-info.outputs.image-tag }} - python-versions: ${{ needs.build-info.outputs.python-versions }} - backend-versions: ${{ needs.build-info.outputs.postgres-versions }} - excludes: ${{ needs.build-info.outputs.postgres-exclude }} - parallel-test-types-list-as-string: ${{ needs.build-info.outputs.parallel-test-types-list-as-string }} - include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} - run-migration-tests: "true" - run-coverage: ${{ needs.build-info.outputs.run-coverage }} - debug-resources: ${{ needs.build-info.outputs.debug-resources }} - if: needs.build-info.outputs.run-tests == 'true' - - tests-mysql: - name: "MySQL tests" - uses: ./.github/workflows/run-unit-tests.yml - needs: [build-info, wait-for-ci-images] - permissions: - contents: read - packages: read - secrets: inherit - with: - runs-on: ${{ needs.build-info.outputs.runs-on }} - backend: "mysql" - test-name: "MySQL" - test-scope: "DB" - image-tag: ${{ needs.build-info.outputs.image-tag }} - python-versions: ${{ needs.build-info.outputs.python-versions }} - backend-versions: ${{ needs.build-info.outputs.mysql-versions }} - excludes: ${{ needs.build-info.outputs.mysql-exclude }} - parallel-test-types-list-as-string: ${{ needs.build-info.outputs.parallel-test-types-list-as-string }} - include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} - run-coverage: ${{ needs.build-info.outputs.run-coverage }} - run-migration-tests: "true" - debug-resources: ${{ needs.build-info.outputs.debug-resources }} - if: needs.build-info.outputs.run-tests == 'true' - - tests-sqlite: - name: "Sqlite tests" - uses: ./.github/workflows/run-unit-tests.yml - needs: [build-info, wait-for-ci-images] - permissions: - contents: read - packages: read - secrets: inherit - with: - runs-on: ${{ needs.build-info.outputs.runs-on }} - backend: "sqlite" - test-name: "Sqlite" - test-name-separator: "" - test-scope: "DB" - image-tag: ${{ needs.build-info.outputs.image-tag }} - python-versions: ${{ needs.build-info.outputs.python-versions }} - # No versions for sqlite - backend-versions: "['']" - excludes: ${{ needs.build-info.outputs.sqlite-exclude }} - parallel-test-types-list-as-string: ${{ needs.build-info.outputs.parallel-test-types-list-as-string }} - include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} - run-coverage: ${{ needs.build-info.outputs.run-coverage }} - run-migration-tests: "true" - debug-resources: ${{ needs.build-info.outputs.debug-resources }} - if: needs.build-info.outputs.run-tests == 'true' - - tests-non-db: - name: "Non-DB tests" - uses: ./.github/workflows/run-unit-tests.yml - needs: [build-info, wait-for-ci-images] - permissions: - contents: read - packages: read - secrets: inherit - with: - runs-on: ${{ needs.build-info.outputs.runs-on }} - backend: "sqlite" - test-name: "" - test-name-separator: "" - test-scope: "Non-DB" - image-tag: ${{ needs.build-info.outputs.image-tag }} - python-versions: ${{ needs.build-info.outputs.python-versions }} - # No versions for non-db - backend-versions: "['']" - excludes: ${{ needs.build-info.outputs.sqlite-exclude }} - parallel-test-types-list-as-string: ${{ needs.build-info.outputs.parallel-test-types-list-as-string }} - include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} - run-coverage: ${{ needs.build-info.outputs.run-coverage }} - debug-resources: ${{ needs.build-info.outputs.debug-resources }} - if: needs.build-info.outputs.run-tests == 'true' - - tests-special: - name: "Special tests" - uses: ./.github/workflows/special-tests.yml - needs: [build-info, wait-for-ci-images] - permissions: - contents: read - packages: read - secrets: inherit - with: - runs-on: ${{ needs.build-info.outputs.runs-on }} - image-tag: ${{ needs.build-info.outputs.image-tag }} - parallel-test-types-list-as-string: ${{ needs.build-info.outputs.parallel-test-types-list-as-string }} - run-coverage: ${{ needs.build-info.outputs.run-coverage }} - default-python-version: ${{ needs.build-info.outputs.default-python-version }} - default-postgres-version: ${{ needs.build-info.outputs.default-postgres-version }} - debug-resources: ${{ needs.build-info.outputs.debug-resources }} - if: needs.build-info.outputs.run-tests == 'true' - - tests-integration: - name: Integration Tests - needs: [build-info, wait-for-ci-images] - uses: ./.github/workflows/integration-tests.yml - permissions: - contents: read - packages: read - secrets: inherit - with: - runs-on: ${{ needs.build-info.outputs.runs-on }} - image-tag: ${{ needs.build-info.outputs.image-tag }} - parallel-test-types-list-as-string: ${{ needs.build-info.outputs.parallel-test-types-list-as-string }} - default-python-version: ${{ needs.build-info.outputs.default-python-version }} - default-postgres-version: ${{ needs.build-info.outputs.default-postgres-version }} - default-mysql-version: ${{ needs.build-info.outputs.default-mysql-version }} - skip-provider-tests: ${{ needs.build-info.outputs.skip-provider-tests }} - is-airflow-runner: ${{ needs.build-info.outputs.is-airflow-runner }} - run-coverage: ${{ needs.build-info.outputs.run-coverage }} - debug-resources: ${{ needs.build-info.outputs.debug-resources }} - if: needs.build-info.outputs.run-tests == 'true' - - build-prod-images: - name: > - ${{ needs.build-info.outputs.in-workflow-build == 'true' && 'Build' || 'Skip building' }} - PROD images in-workflow - needs: [build-info, build-ci-images] - uses: ./.github/workflows/prod-image-build.yml - permissions: - contents: read - # This write is only given here for `push` events from "apache/airflow" repo. It is not given for PRs - # from forks. This is to prevent malicious PRs from creating images in the "apache/airflow" repo. - # For regular build for PRS this "build-prod-images" workflow will be skipped anyway by the - # "in-workflow-build" condition - packages: write - secrets: inherit - with: - build-type: "Regular" - do-build: ${{ needs.build-info.outputs.in-workflow-build }} - image-tag: ${{ needs.build-info.outputs.image-tag }} - python-versions: ${{ needs.build-info.outputs.python-versions }} - branch: ${{ needs.build-info.outputs.default-branch }} - push-image: "true" - use-uv: "true" - build-provider-packages: ${{ needs.build-info.outputs.default-branch == 'main' }} - upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }} - chicken-egg-providers: ${{ needs.build-info.outputs.chicken-egg-providers }} - constraints-branch: ${{ needs.build-info.outputs.default-constraints-branch }} - docker-cache: ${{ needs.build-info.outputs.cache-directive }} - - wait-for-prod-images: - timeout-minutes: 80 - name: "Wait for PROD images" - runs-on: ["ubuntu-22.04"] - needs: [build-info, wait-for-ci-images, build-prod-images] - if: needs.build-info.outputs.prod-image-build == 'true' - env: - BACKEND: sqlite - PYTHON_MAJOR_MINOR_VERSION: "${{needs.build-info.outputs.default-python-version}}" - # Force more parallelism for pull on public images - PARALLELISM: 6 - INCLUDE_SUCCESS_OUTPUTS: "${{needs.build-info.outputs.include-success-outputs}}" - IMAGE_TAG: ${{ needs.build-info.outputs.image-tag }} - steps: - - name: "Cleanup repo" - shell: bash - run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*" - if: needs.build-info.outputs.in-workflow-build == 'false' - - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" - uses: actions/checkout@v4 - with: - persist-credentials: false - if: needs.build-info.outputs.in-workflow-build == 'false' - - name: Cleanup docker - uses: ./.github/actions/cleanup-docker - if: needs.build-info.outputs.in-workflow-build == 'false' - - name: "Install Breeze" - uses: ./.github/actions/breeze - if: needs.build-info.outputs.in-workflow-build == 'false' - - name: Login to ghcr.io - run: echo "${{ env.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - if: needs.build-info.outputs.in-workflow-build == 'false' - - name: Wait for PROD images ${{ env.PYTHON_VERSIONS }}:${{ needs.build-info.outputs.image-tag }} - # We wait for the images to be available either from "build-images.yml' run as pull_request_target - # or from build-prod-images (or build-prod-images-release-branch) above. - # We are utilising single job to wait for all images because this job merely waits - # For the images to be available. - run: breeze prod-image pull --wait-for-image --run-in-parallel - env: - PYTHON_VERSIONS: ${{ needs.build-info.outputs.python-versions-list-as-string }} - DEBUG_RESOURCES: ${{ needs.build-info.outputs.debug-resources }} - if: needs.build-info.outputs.in-workflow-build == 'false' - - additional-prod-image-tests: - name: "Additional PROD image tests" - needs: [build-info, wait-for-prod-images, early-image-checks] - uses: ./.github/workflows/additional-prod-image-tests.yml - with: - runs-on: ${{ needs.build-info.outputs.runs-on }} - default-branch: ${{ needs.build-info.outputs.default-branch }} - constraints-branch: ${{ needs.build-info.outputs.default-constraints-branch }} - image-tag: ${{ needs.build-info.outputs.image-tag }} - upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }} - chicken-egg-providers: ${{ needs.build-info.outputs.chicken-egg-providers }} - docker-cache: ${{ needs.build-info.outputs.cache-directive }} - default-python-version: ${{ needs.build-info.outputs.default-python-version }} - canary-run: ${{ needs.build-info.outputs.canary-run }} - if: needs.build-info.outputs.prod-image-build == 'true' - - tests-kubernetes: - name: "Kubernetes tests" - uses: ./.github/workflows/k8s-tests.yml - needs: [build-info, wait-for-prod-images] - permissions: - contents: read - packages: read - secrets: inherit - with: - runs-on: ${{ needs.build-info.outputs.runs-on }} - image-tag: ${{ needs.build-info.outputs.image-tag }} - python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }} - kubernetes-versions-list-as-string: ${{ needs.build-info.outputs.kubernetes-versions-list-as-string }} - kubernetes-combos-list-as-string: ${{ needs.build-info.outputs.kubernetes-combos-list-as-string }} - include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} - debug-resources: ${{ needs.build-info.outputs.debug-resources }} - if: > - ( needs.build-info.outputs.run-kubernetes-tests == 'true' || - needs.build-info.outputs.needs-helm-tests == 'true') - - finalize-tests: - name: Finalize tests - permissions: - contents: write - packages: write - secrets: inherit - needs: - - build-info - - docs - - wait-for-ci-images - - wait-for-prod-images - - static-checks - - mypy - - tests-sqlite - - tests-mysql - - tests-postgres - - tests-non-db - - tests-special - - tests-integration - - early-image-checks - uses: ./.github/workflows/finalize-tests.yml - with: - runs-on: ${{ needs.build-info.outputs.runs-on }} - image-tag: ${{ needs.build-info.outputs.image-tag }} - python-versions: ${{ needs.build-info.outputs.python-versions }} - python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }} - branch: ${{ needs.build-info.outputs.default-branch }} - constraints-branch: ${{ needs.build-info.outputs.default-constraints-branch }} - default-python-version: ${{ needs.build-info.outputs.default-python-version }} - in-workflow-build: ${{ needs.build-info.outputs.in-workflow-build }} - upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }} - include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} - docker-cache: ${{ needs.build-info.outputs.cache-directive }} - canary-run: ${{ needs.build-info.outputs.canary-run }} +# static-checks: +# timeout-minutes: 45 +# name: "Static checks" +# runs-on: ${{fromJSON(needs.build-info.outputs.runs-on)}} +# needs: [build-info, wait-for-ci-images] +# env: +# RUNS_ON: "${{needs.build-info.outputs.runs-on}}" +# PYTHON_MAJOR_MINOR_VERSION: "${{needs.build-info.outputs.default-python-version}}" +# UPGRADE_TO_NEWER_DEPENDENCIES: "${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}" +# if: > +# needs.build-info.outputs.basic-checks-only == 'false' && +# needs.build-info.outputs.latest-versions-only != 'true' +# steps: +# - name: "Cleanup repo" +# shell: bash +# run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*" +# - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" +# uses: actions/checkout@v4 +# with: +# persist-credentials: false +# - name: Cleanup docker +# uses: ./.github/actions/cleanup-docker +# - name: > +# Prepare breeze & CI image: ${{needs.build-info.outputs.default-python-version}}:${{env.IMAGE_TAG}} +# uses: ./.github/actions/prepare_breeze_and_image +# id: breeze +# - name: Cache pre-commit envs +# uses: actions/cache@v4 +# with: +# path: ~/.cache/pre-commit +# # yamllint disable-line rule:line-length +# key: "pre-commit-${{steps.breeze.outputs.host-python-version}}-${{ hashFiles('.pre-commit-config.yaml') }}" +# restore-keys: | +# pre-commit-${{steps.breeze.outputs.host-python-version}}- +# - name: "Static checks" +# run: breeze static-checks --all-files --show-diff-on-failure --color always --initialize-environment +# env: +# VERBOSE: "false" +# SKIP: ${{ needs.build-info.outputs.skip-pre-commits }} +# COLUMNS: "250" +# SKIP_GROUP_OUTPUT: "true" +# DEFAULT_BRANCH: ${{ needs.build-info.outputs.default-branch }} +# RUFF_FORMAT: "github" +# +# mypy: +# name: "MyPy tests" +# uses: ./.github/workflows/mypy.yml +# needs: [build-info, wait-for-ci-images] +# permissions: +# contents: read +# packages: read +# secrets: inherit +# with: +# runs-on: ${{ needs.build-info.outputs.runs-on }} +# mypy-folders: ${{ needs.build-info.outputs.mypy-folders }} +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# default-python-version: ${{ needs.build-info.outputs.default-python-version }} +# needs-mypy: ${{ needs.build-info.outputs.needs-mypy }} +# if: needs.build-info.outputs.latest-versions-only != 'true' +# +# docs: +# name: "Docs" +# uses: ./.github/workflows/docs.yml +# needs: [build-info, wait-for-ci-images] +# permissions: +# contents: read +# packages: read +# secrets: inherit +# if: > +# needs.build-info.outputs.docs-build == 'true' && +# needs.build-info.outputs.latest-versions-only != 'true' +# with: +# runs-on: ${{ needs.build-info.outputs.runs-on }} +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# default-branch: ${{ needs.build-info.outputs.default-branch }} +# docs-list-as-string: ${{ needs.build-info.outputs.docs-list-as-string }} +# default-python-version: ${{ needs.build-info.outputs.default-python-version }} +# include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} +# canary-run: ${{ needs.build-info.outputs.canary-run }} +# +# providers: +# name: "Provider checks" +# uses: ./.github/workflows/check-providers.yml +# needs: [build-info, wait-for-ci-images] +# permissions: +# contents: read +# packages: read +# secrets: inherit +# if: > +# needs.build-info.outputs.skip-providers-tests != 'true' && +# needs.build-info.outputs.latest-versions-only != 'true' +# with: +# runs-on: ${{ needs.build-info.outputs.runs-on }} +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# default-python-version: ${{ needs.build-info.outputs.default-python-version }} +# upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }} +# affected-providers-list-as-string: ${{ needs.build-info.outputs.affected-providers-list-as-string }} +# providers-compatibility-checks: ${{ needs.build-info.outputs.providers-compatibility-checks }} +# skip-provider-tests: ${{ needs.build-info.outputs.skip-provider-tests }} +# python-versions: ${{ needs.build-info.outputs.python-versions }} +# +# test-airflow-release-commands: +# timeout-minutes: 80 +# name: "Test Airflow release commands" +# runs-on: ${{fromJSON(needs.build-info.outputs.runs-on)}} +# needs: [build-info, wait-for-ci-images] +# if: > +# needs.build-info.outputs.is-self-hosted-runner == 'true' +# && needs.build-info.outputs.is-airflow-runner == 'false' +# env: +# RUNS_ON: "${{needs.build-info.outputs.runs-on}}" +# PYTHON_MAJOR_MINOR_VERSION: "${{needs.build-info.outputs.default-python-version}}" +# steps: +# - name: "Cleanup repo" +# shell: bash +# run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*" +# - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" +# uses: actions/checkout@v4 +# with: +# persist-credentials: false +# - name: Cleanup docker +# uses: ./.github/actions/cleanup-docker +# - name: > +# Prepare breeze & CI image: ${{needs.build-info.outputs.default-python-version}}:${{env.IMAGE_TAG}} +# uses: ./.github/actions/prepare_breeze_and_image +# - name: "Cleanup dist files" +# run: rm -fv ./dist/* +# - name: "Install required packages" +# run: python -m pip install --editable ./dev/breeze/ +# - name: "Check Airflow create minor branch command" +# run: breeze release-management create-minor-branch --version-branch 2-4 -a y +# - name: "Check Airflow RC process command" +# run: | +# breeze release-management start-rc-process --version 2.4.3rc1 --previous-version 2.4.2 -a y +# - name: "Check Airflow release process command" +# run: | +# breeze release-management start-release --release-candidate 2.4.3rc1 --previous-release 2.4.2 -a y +# +# tests-helm: +# name: "Helm tests" +# uses: ./.github/workflows/helm-tests.yml +# needs: [build-info, wait-for-ci-images] +# permissions: +# contents: read +# packages: read +# secrets: inherit +# with: +# runs-on: ${{ needs.build-info.outputs.runs-on }} +# helm-test-packages: ${{ needs.build-info.outputs.helm-test-packages }} +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# default-python-version: ${{ needs.build-info.outputs.default-python-version }} +# if: > +# needs.build-info.outputs.needs-helm-tests == 'true' && +# needs.build-info.outputs.default-branch == 'main' && +# needs.build-info.outputs.latest-versions-only != 'true' +# +# tests-postgres: +# name: "Postgres tests" +# uses: ./.github/workflows/run-unit-tests.yml +# needs: [build-info, wait-for-ci-images] +# permissions: +# contents: read +# packages: read +# secrets: inherit +# with: +# runs-on: ${{ needs.build-info.outputs.runs-on }} +# backend: "postgres" +# test-name: "Postgres" +# test-scope: "DB" +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# python-versions: ${{ needs.build-info.outputs.python-versions }} +# backend-versions: ${{ needs.build-info.outputs.postgres-versions }} +# excludes: ${{ needs.build-info.outputs.postgres-exclude }} +# parallel-test-types-list-as-string: ${{ needs.build-info.outputs.parallel-test-types-list-as-string }} +# include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} +# run-migration-tests: "true" +# run-coverage: ${{ needs.build-info.outputs.run-coverage }} +# debug-resources: ${{ needs.build-info.outputs.debug-resources }} +# if: needs.build-info.outputs.run-tests == 'true' +# +# tests-mysql: +# name: "MySQL tests" +# uses: ./.github/workflows/run-unit-tests.yml +# needs: [build-info, wait-for-ci-images] +# permissions: +# contents: read +# packages: read +# secrets: inherit +# with: +# runs-on: ${{ needs.build-info.outputs.runs-on }} +# backend: "mysql" +# test-name: "MySQL" +# test-scope: "DB" +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# python-versions: ${{ needs.build-info.outputs.python-versions }} +# backend-versions: ${{ needs.build-info.outputs.mysql-versions }} +# excludes: ${{ needs.build-info.outputs.mysql-exclude }} +# parallel-test-types-list-as-string: ${{ needs.build-info.outputs.parallel-test-types-list-as-string }} +# include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} +# run-coverage: ${{ needs.build-info.outputs.run-coverage }} +# run-migration-tests: "true" +# debug-resources: ${{ needs.build-info.outputs.debug-resources }} +# if: needs.build-info.outputs.run-tests == 'true' +# +# tests-sqlite: +# name: "Sqlite tests" +# uses: ./.github/workflows/run-unit-tests.yml +# needs: [build-info, wait-for-ci-images] +# permissions: +# contents: read +# packages: read +# secrets: inherit +# with: +# runs-on: ${{ needs.build-info.outputs.runs-on }} +# backend: "sqlite" +# test-name: "Sqlite" +# test-name-separator: "" +# test-scope: "DB" +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# python-versions: ${{ needs.build-info.outputs.python-versions }} +# # No versions for sqlite +# backend-versions: "['']" +# excludes: ${{ needs.build-info.outputs.sqlite-exclude }} +# parallel-test-types-list-as-string: ${{ needs.build-info.outputs.parallel-test-types-list-as-string }} +# include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} +# run-coverage: ${{ needs.build-info.outputs.run-coverage }} +# run-migration-tests: "true" +# debug-resources: ${{ needs.build-info.outputs.debug-resources }} +# if: needs.build-info.outputs.run-tests == 'true' +# +# tests-non-db: +# name: "Non-DB tests" +# uses: ./.github/workflows/run-unit-tests.yml +# needs: [build-info, wait-for-ci-images] +# permissions: +# contents: read +# packages: read +# secrets: inherit +# with: +# runs-on: ${{ needs.build-info.outputs.runs-on }} +# backend: "sqlite" +# test-name: "" +# test-name-separator: "" +# test-scope: "Non-DB" +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# python-versions: ${{ needs.build-info.outputs.python-versions }} +# # No versions for non-db +# backend-versions: "['']" +# excludes: ${{ needs.build-info.outputs.sqlite-exclude }} +# parallel-test-types-list-as-string: ${{ needs.build-info.outputs.parallel-test-types-list-as-string }} +# include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} +# run-coverage: ${{ needs.build-info.outputs.run-coverage }} +# debug-resources: ${{ needs.build-info.outputs.debug-resources }} +# if: needs.build-info.outputs.run-tests == 'true' +# +# tests-special: +# name: "Special tests" +# uses: ./.github/workflows/special-tests.yml +# needs: [build-info, wait-for-ci-images] +# permissions: +# contents: read +# packages: read +# secrets: inherit +# with: +# runs-on: ${{ needs.build-info.outputs.runs-on }} +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# parallel-test-types-list-as-string: ${{ needs.build-info.outputs.parallel-test-types-list-as-string }} +# run-coverage: ${{ needs.build-info.outputs.run-coverage }} +# default-python-version: ${{ needs.build-info.outputs.default-python-version }} +# default-postgres-version: ${{ needs.build-info.outputs.default-postgres-version }} +# debug-resources: ${{ needs.build-info.outputs.debug-resources }} +# if: needs.build-info.outputs.run-tests == 'true' +# +# tests-integration: +# name: Integration Tests +# needs: [build-info, wait-for-ci-images] +# uses: ./.github/workflows/integration-tests.yml +# permissions: +# contents: read +# packages: read +# secrets: inherit +# with: +# runs-on: ${{ needs.build-info.outputs.runs-on }} +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# parallel-test-types-list-as-string: ${{ needs.build-info.outputs.parallel-test-types-list-as-string }} +# default-python-version: ${{ needs.build-info.outputs.default-python-version }} +# default-postgres-version: ${{ needs.build-info.outputs.default-postgres-version }} +# default-mysql-version: ${{ needs.build-info.outputs.default-mysql-version }} +# skip-provider-tests: ${{ needs.build-info.outputs.skip-provider-tests }} +# is-airflow-runner: ${{ needs.build-info.outputs.is-airflow-runner }} +# run-coverage: ${{ needs.build-info.outputs.run-coverage }} +# debug-resources: ${{ needs.build-info.outputs.debug-resources }} +# if: needs.build-info.outputs.run-tests == 'true' +# +# build-prod-images: +# name: > +# ${{ needs.build-info.outputs.in-workflow-build == 'true' && 'Build' || 'Skip building' }} +# PROD images in-workflow +# needs: [build-info, build-ci-images] +# uses: ./.github/workflows/prod-image-build.yml +# permissions: +# contents: read +# # This write is only given here for `push` events from "apache/airflow" repo. It is not given for PRs +# # from forks. This is to prevent malicious PRs from creating images in the "apache/airflow" repo. +# # For regular build for PRS this "build-prod-images" workflow will be skipped anyway by the +# # "in-workflow-build" condition +# packages: write +# secrets: inherit +# with: +# build-type: "Regular" +# do-build: ${{ needs.build-info.outputs.in-workflow-build }} +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# python-versions: ${{ needs.build-info.outputs.python-versions }} +# branch: ${{ needs.build-info.outputs.default-branch }} +# push-image: "true" +# use-uv: "true" +# build-provider-packages: ${{ needs.build-info.outputs.default-branch == 'main' }} +# upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }} +# chicken-egg-providers: ${{ needs.build-info.outputs.chicken-egg-providers }} +# constraints-branch: ${{ needs.build-info.outputs.default-constraints-branch }} +# docker-cache: ${{ needs.build-info.outputs.cache-directive }} +# +# wait-for-prod-images: +# timeout-minutes: 80 +# name: "Wait for PROD images" +# runs-on: ["ubuntu-22.04"] +# needs: [build-info, wait-for-ci-images, build-prod-images] +# if: needs.build-info.outputs.prod-image-build == 'true' +# env: +# BACKEND: sqlite +# PYTHON_MAJOR_MINOR_VERSION: "${{needs.build-info.outputs.default-python-version}}" +# # Force more parallelism for pull on public images +# PARALLELISM: 6 +# INCLUDE_SUCCESS_OUTPUTS: "${{needs.build-info.outputs.include-success-outputs}}" +# IMAGE_TAG: ${{ needs.build-info.outputs.image-tag }} +# steps: +# - name: "Cleanup repo" +# shell: bash +# run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*" +# if: needs.build-info.outputs.in-workflow-build == 'false' +# - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" +# uses: actions/checkout@v4 +# with: +# persist-credentials: false +# if: needs.build-info.outputs.in-workflow-build == 'false' +# - name: Cleanup docker +# uses: ./.github/actions/cleanup-docker +# if: needs.build-info.outputs.in-workflow-build == 'false' +# - name: "Install Breeze" +# uses: ./.github/actions/breeze +# if: needs.build-info.outputs.in-workflow-build == 'false' +# - name: Login to ghcr.io +# run: echo "${{ env.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin +# if: needs.build-info.outputs.in-workflow-build == 'false' +# - name: Wait for PROD images ${{ env.PYTHON_VERSIONS }}:${{ needs.build-info.outputs.image-tag }} +# # We wait for the images to be available either from "build-images.yml' run as pull_request_target +# # or from build-prod-images (or build-prod-images-release-branch) above. +# # We are utilising single job to wait for all images because this job merely waits +# # For the images to be available. +# run: breeze prod-image pull --wait-for-image --run-in-parallel +# env: +# PYTHON_VERSIONS: ${{ needs.build-info.outputs.python-versions-list-as-string }} +# DEBUG_RESOURCES: ${{ needs.build-info.outputs.debug-resources }} +# if: needs.build-info.outputs.in-workflow-build == 'false' +# +# additional-prod-image-tests: +# name: "Additional PROD image tests" +# needs: [build-info, wait-for-prod-images, early-image-checks] +# uses: ./.github/workflows/additional-prod-image-tests.yml +# with: +# runs-on: ${{ needs.build-info.outputs.runs-on }} +# default-branch: ${{ needs.build-info.outputs.default-branch }} +# constraints-branch: ${{ needs.build-info.outputs.default-constraints-branch }} +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }} +# chicken-egg-providers: ${{ needs.build-info.outputs.chicken-egg-providers }} +# docker-cache: ${{ needs.build-info.outputs.cache-directive }} +# default-python-version: ${{ needs.build-info.outputs.default-python-version }} +# canary-run: ${{ needs.build-info.outputs.canary-run }} +# if: needs.build-info.outputs.prod-image-build == 'true' +# +# tests-kubernetes: +# name: "Kubernetes tests" +# uses: ./.github/workflows/k8s-tests.yml +# needs: [build-info, wait-for-prod-images] +# permissions: +# contents: read +# packages: read +# secrets: inherit +# with: +# runs-on: ${{ needs.build-info.outputs.runs-on }} +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }} +# kubernetes-versions-list-as-string: ${{ needs.build-info.outputs.kubernetes-versions-list-as-string }} +# kubernetes-combos-list-as-string: ${{ needs.build-info.outputs.kubernetes-combos-list-as-string }} +# include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} +# debug-resources: ${{ needs.build-info.outputs.debug-resources }} +# if: > +# ( needs.build-info.outputs.run-kubernetes-tests == 'true' || +# needs.build-info.outputs.needs-helm-tests == 'true') +# +# finalize-tests: +# name: Finalize tests +# permissions: +# contents: write +# packages: write +# secrets: inherit +# needs: +# - build-info +# - docs +# - wait-for-ci-images +# - wait-for-prod-images +# - static-checks +# - mypy +# - tests-sqlite +# - tests-mysql +# - tests-postgres +# - tests-non-db +# - tests-special +# - tests-integration +# - early-image-checks +# uses: ./.github/workflows/finalize-tests.yml +# with: +# runs-on: ${{ needs.build-info.outputs.runs-on }} +# image-tag: ${{ needs.build-info.outputs.image-tag }} +# python-versions: ${{ needs.build-info.outputs.python-versions }} +# python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }} +# branch: ${{ needs.build-info.outputs.default-branch }} +# constraints-branch: ${{ needs.build-info.outputs.default-constraints-branch }} +# default-python-version: ${{ needs.build-info.outputs.default-python-version }} +# in-workflow-build: ${{ needs.build-info.outputs.in-workflow-build }} +# upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }} +# include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }} +# docker-cache: ${{ needs.build-info.outputs.cache-directive }} +# canary-run: ${{ needs.build-info.outputs.canary-run }} diff --git a/.github/workflows/early-image-checks.yml b/.github/workflows/early-image-checks.yml index e9fda7d7d5..d810628e90 100644 --- a/.github/workflows/early-image-checks.yml +++ b/.github/workflows/early-image-checks.yml @@ -106,130 +106,130 @@ jobs: docker-cache: ${{ inputs.docker-cache }} if: inputs.canary-run == 'true' && inputs.branch == 'main' - # Check that after earlier cache push, breeze command will build quickly - check-that-image-builds-quickly: - timeout-minutes: 5 - name: Check that image builds quickly - runs-on: ["ubuntu-22.04"] - env: - UPGRADE_TO_NEWER_DEPENDENCIES: false - PLATFORM: "linux/amd64" - PYTHON_MAJOR_MINOR_VERSION: ${{ inputs.default-python-version }} - PYTHON_VERSION: ${{ inputs.default-python-version }} - IMAGE_TAG: ${{ inputs.image-tag }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: inputs.canary-run == 'true' && inputs.branch == 'main' - steps: - - name: "Cleanup repo" - shell: bash - run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*" - - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" - uses: actions/checkout@v4 - with: - persist-credentials: false - - name: Cleanup docker - uses: ./.github/actions/cleanup-docker - - name: "Install Breeze" - uses: ./.github/actions/breeze - - name: "Login to ghcr.io" - run: echo "${{ env.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - - name: "Check that image builds quickly" - run: breeze shell --max-time 120 - - generate-constraints: - permissions: - contents: read - timeout-minutes: 70 - name: Generate constraints ${{ inputs.python-versions-list-as-string }} - runs-on: ["ubuntu-22.04"] - env: - PYTHON_VERSIONS: ${{ inputs.python-versions-list-as-string }} - DEBUG_RESOURCES: ${{ inputs.debug-resources }} - VERSION_SUFFIX_FOR_PYPI: "dev0" - INCLUDE_SUCCESS_OUTPUTS: "true" - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: inputs.ci-image-build == 'true' - steps: - - name: "Cleanup repo" - shell: bash - run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*" - - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" - uses: actions/checkout@v4 - with: - persist-credentials: false - - name: Cleanup docker - uses: ./.github/actions/cleanup-docker - - name: "Install Breeze" - uses: ./.github/actions/breeze - - name: Login to ghcr.io - run: echo "${{ env.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - - name: Pull CI images ${{ inputs.python-versions-list-as-string }}:${{ inputs.image-tag }} - run: breeze ci-image pull --run-in-parallel --tag-as-latest - - name: Verify CI images ${{ inputs.python-versions-list-as-string }}:${{ inputs.image-tag }} - run: breeze ci-image verify --run-in-parallel - - name: "Source constraints" - shell: bash - run: > - breeze release-management generate-constraints --run-in-parallel - --airflow-constraints-mode constraints-source-providers --answer yes - - name: "No providers constraints" - shell: bash - timeout-minutes: 25 - run: > - breeze release-management generate-constraints --run-in-parallel - --airflow-constraints-mode constraints-no-providers --answer yes - - name: "Prepare chicken-eggs provider packages" - # In case of provider packages which use latest dev0 version of providers, we should prepare them - # from the source code, not from the PyPI because they have apache-airflow>=X.Y.Z dependency - # And when we prepare them from sources they will have apache-airflow>=X.Y.Z.dev0 - shell: bash - run: > - breeze release-management prepare-provider-packages --include-not-ready-providers - --package-format wheel --version-suffix-for-pypi dev0 - ${{ inputs.chicken-egg-providers }} - if: inputs.chicken-egg-providers != '' - - name: "PyPI constraints" - shell: bash - timeout-minutes: 25 - run: > - breeze release-management generate-constraints --run-in-parallel - --airflow-constraints-mode constraints --answer yes - --chicken-egg-providers "${{ inputs.chicken-egg-providers }}" - - name: "Dependency upgrade summary" - shell: bash - run: | - for PYTHON_VERSION in ${{ env.PYTHON_VERSIONS }}; do - echo "Summarizing Python $PYTHON_VERSION" - cat "files/constraints-${PYTHON_VERSION}"/*.md >> $GITHUB_STEP_SUMMARY || true - done - - name: "Upload constraint artifacts" - uses: actions/upload-artifact@v4 - with: - name: constraints - path: ./files/constraints-*/constraints-*.txt - retention-days: 7 - if-no-files-found: error +# # Check that after earlier cache push, breeze command will build quickly +# check-that-image-builds-quickly: +# timeout-minutes: 5 +# name: Check that image builds quickly +# runs-on: ["ubuntu-22.04"] +# env: +# UPGRADE_TO_NEWER_DEPENDENCIES: false +# PLATFORM: "linux/amd64" +# PYTHON_MAJOR_MINOR_VERSION: ${{ inputs.default-python-version }} +# PYTHON_VERSION: ${{ inputs.default-python-version }} +# IMAGE_TAG: ${{ inputs.image-tag }} +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# if: inputs.canary-run == 'true' && inputs.branch == 'main' +# steps: +# - name: "Cleanup repo" +# shell: bash +# run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*" +# - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" +# uses: actions/checkout@v4 +# with: +# persist-credentials: false +# - name: Cleanup docker +# uses: ./.github/actions/cleanup-docker +# - name: "Install Breeze" +# uses: ./.github/actions/breeze +# - name: "Login to ghcr.io" +# run: echo "${{ env.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin +# - name: "Check that image builds quickly" +# run: breeze shell --max-time 120 +# +# generate-constraints: +# permissions: +# contents: read +# timeout-minutes: 70 +# name: Generate constraints ${{ inputs.python-versions-list-as-string }} +# runs-on: ["ubuntu-22.04"] +# env: +# PYTHON_VERSIONS: ${{ inputs.python-versions-list-as-string }} +# DEBUG_RESOURCES: ${{ inputs.debug-resources }} +# VERSION_SUFFIX_FOR_PYPI: "dev0" +# INCLUDE_SUCCESS_OUTPUTS: "true" +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# if: inputs.ci-image-build == 'true' +# steps: +# - name: "Cleanup repo" +# shell: bash +# run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*" +# - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" +# uses: actions/checkout@v4 +# with: +# persist-credentials: false +# - name: Cleanup docker +# uses: ./.github/actions/cleanup-docker +# - name: "Install Breeze" +# uses: ./.github/actions/breeze +# - name: Login to ghcr.io +# run: echo "${{ env.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin +# - name: Pull CI images ${{ inputs.python-versions-list-as-string }}:${{ inputs.image-tag }} +# run: breeze ci-image pull --run-in-parallel --tag-as-latest +# - name: Verify CI images ${{ inputs.python-versions-list-as-string }}:${{ inputs.image-tag }} +# run: breeze ci-image verify --run-in-parallel +# - name: "Source constraints" +# shell: bash +# run: > +# breeze release-management generate-constraints --run-in-parallel +# --airflow-constraints-mode constraints-source-providers --answer yes +# - name: "No providers constraints" +# shell: bash +# timeout-minutes: 25 +# run: > +# breeze release-management generate-constraints --run-in-parallel +# --airflow-constraints-mode constraints-no-providers --answer yes +# - name: "Prepare chicken-eggs provider packages" +# # In case of provider packages which use latest dev0 version of providers, we should prepare them +# # from the source code, not from the PyPI because they have apache-airflow>=X.Y.Z dependency +# # And when we prepare them from sources they will have apache-airflow>=X.Y.Z.dev0 +# shell: bash +# run: > +# breeze release-management prepare-provider-packages --include-not-ready-providers +# --package-format wheel --version-suffix-for-pypi dev0 +# ${{ inputs.chicken-egg-providers }} +# if: inputs.chicken-egg-providers != '' +# - name: "PyPI constraints" +# shell: bash +# timeout-minutes: 25 +# run: > +# breeze release-management generate-constraints --run-in-parallel +# --airflow-constraints-mode constraints --answer yes +# --chicken-egg-providers "${{ inputs.chicken-egg-providers }}" +# - name: "Dependency upgrade summary" +# shell: bash +# run: | +# for PYTHON_VERSION in ${{ env.PYTHON_VERSIONS }}; do +# echo "Summarizing Python $PYTHON_VERSION" +# cat "files/constraints-${PYTHON_VERSION}"/*.md >> $GITHUB_STEP_SUMMARY || true +# done +# - name: "Upload constraint artifacts" +# uses: actions/upload-artifact@v4 +# with: +# name: constraints +# path: ./files/constraints-*/constraints-*.txt +# retention-days: 7 +# if-no-files-found: error - # This is only a check if ARM images are successfully building when committer runs PR from - # Apache repository. This is needed in case you want to fix failing cache job in "canary" run - # There is no point in running this one in "canary" run, because the above step is doing the - # same build anyway. - build-ci-arm-images: - name: Build CI ARM images (in-workflow) - uses: ./.github/workflows/ci-image-build.yml - permissions: - contents: read - packages: write - secrets: inherit - with: - platform: "arm64" - push-image: "false" - runs-on: ${{ inputs.runs-on }} - image-tag: ${{ inputs.image-tag }} - python-versions: ${{ inputs.python-versions }} - branch: ${{ inputs.branch }} - use-uv: "true" - upgrade-to-newer-dependencies: ${{ inputs.upgrade-to-newer-dependencies }} - constraints-branch: ${{ inputs.constraints-branch }} - docker-cache: ${{ inputs.docker-cache }} - if: inputs.canary-run == 'true' +# # This is only a check if ARM images are successfully building when committer runs PR from +# # Apache repository. This is needed in case you want to fix failing cache job in "canary" run +# # There is no point in running this one in "canary" run, because the above step is doing the +# # same build anyway. +# build-ci-arm-images: +# name: Build CI ARM images (in-workflow) +# uses: ./.github/workflows/ci-image-build.yml +# permissions: +# contents: read +# packages: write +# secrets: inherit +# with: +# platform: "arm64" +# push-image: "false" +# runs-on: ${{ inputs.runs-on }} +# image-tag: ${{ inputs.image-tag }} +# python-versions: ${{ inputs.python-versions }} +# branch: ${{ inputs.branch }} +# use-uv: "true" +# upgrade-to-newer-dependencies: ${{ inputs.upgrade-to-newer-dependencies }} +# constraints-branch: ${{ inputs.constraints-branch }} +# docker-cache: ${{ inputs.docker-cache }} +# if: inputs.canary-run == 'true'
