Skip to content

Commit 2803191

Browse files
authored
Merge branch 'main' into refactor-container-lifecycle-test
2 parents 1492256 + 5864e39 commit 2803191

1,795 files changed

Lines changed: 31088 additions & 12087 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/actions/breeze/action.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ runs:
4141
- name: "Install Breeze"
4242
shell: bash
4343
run: ./scripts/ci/install_breeze.sh
44+
env:
45+
PYTHON_VERSION: "${{ inputs.python-version }}"
4446
- name: "Free space"
4547
shell: bash
4648
run: breeze ci free-space

.github/actions/install-pre-commit/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ description: 'Installs pre-commit and related packages'
2121
inputs:
2222
python-version:
2323
description: 'Python version to use'
24-
default: "3.9"
24+
default: "3.10"
2525
uv-version:
2626
description: 'uv version to use'
27-
default: "0.7.14" # Keep this comment to allow automatic replacement of uv version
27+
default: "0.7.19" # Keep this comment to allow automatic replacement of uv version
2828
pre-commit-version:
2929
description: 'pre-commit version to use'
3030
default: "4.2.0" # Keep this comment to allow automatic replacement of pre-commit version

.github/actions/migration_tests/action.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ runs:
2424
- name: "Test migration file 2 to 3 migration: ${{env.BACKEND}}"
2525
shell: bash
2626
run: |
27-
breeze shell "${{ env.AIRFLOW_2_CMD }}" --use-airflow-version 2.11.0 --answer y &&
28-
breeze shell "export AIRFLOW__DATABASE__EXTERNAL_DB_MANAGERS=${{env.DB_MANGERS}}
29-
${{ env.AIRFLOW_3_CMD }}" --no-db-cleanup
27+
breeze shell "${AIRFLOW_2_CMD}" --use-airflow-version 2.11.0 --answer y &&
28+
breeze shell "export AIRFLOW__DATABASE__EXTERNAL_DB_MANAGERS=${DB_MANGERS}
29+
${AIRFLOW_3_CMD}" --no-db-cleanup
3030
env:
3131
COMPOSE_PROJECT_NAME: "docker-compose"
3232
DB_RESET: "false"
@@ -47,9 +47,9 @@ runs:
4747
- name: "Test ORM migration 2 to 3: ${{env.BACKEND}}"
4848
shell: bash
4949
run: >
50-
breeze shell "${{ env.AIRFLOW_2_CMD }}" --use-airflow-version 2.11.0 --answer y &&
51-
breeze shell "export AIRFLOW__DATABASE__EXTERNAL_DB_MANAGERS=${{env.DB_MANGERS}}
52-
${{ env.AIRFLOW_3_CMD }}" --no-db-cleanup
50+
breeze shell "${AIRFLOW_2_CMD}" --use-airflow-version 2.11.0 --answer y &&
51+
breeze shell "export AIRFLOW__DATABASE__EXTERNAL_DB_MANAGERS=${DB_MANGERS}
52+
${AIRFLOW_3_CMD}" --no-db-cleanup
5353
env:
5454
COMPOSE_PROJECT_NAME: "docker-compose"
5555
DB_RESET: "false"
@@ -69,7 +69,7 @@ runs:
6969
- name: "Test ORM migration ${{env.BACKEND}}"
7070
shell: bash
7171
run: >
72-
breeze shell "export AIRFLOW__DATABASE__EXTERNAL_DB_MANAGERS=${{env.DB_MANAGERS}} &&
72+
breeze shell "export AIRFLOW__DATABASE__EXTERNAL_DB_MANAGERS=${DB_MANAGERS} &&
7373
airflow db reset -y &&
7474
airflow db migrate --to-revision heads &&
7575
airflow db downgrade -n 2.7.0 -y &&
@@ -86,7 +86,7 @@ runs:
8686
shell: bash
8787
run: >
8888
breeze shell
89-
"export AIRFLOW__DATABASE__EXTERNAL_DB_MANAGERS=${{env.DB_MANAGERS}} &&
89+
"export AIRFLOW__DATABASE__EXTERNAL_DB_MANAGERS=${DB_MANAGERS} &&
9090
airflow db reset -y &&
9191
airflow db downgrade -n 2.7.0 -y &&
9292
airflow db migrate -s"

.github/actions/prepare_all_ci_images/action.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ runs:
3636
# this should be implemented in stash action as list of keys to download.
3737
# That includes 3.9 - 3.12 as we are backporting it to v3-0-test branch
3838
# This is captured in https://github.com/apache/airflow/issues/45268
39+
# So we actually need 3.9 even if 3.9 support on main is dropped!
3940
- name: "Restore CI docker image ${{ inputs.platform }}:3.9"
4041
uses: ./.github/actions/prepare_single_ci_image
4142
with:

.github/workflows/additional-ci-image-checks.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ jobs:
122122
runs-on: ${{ fromJSON(inputs.runners) }}
123123
env:
124124
UPGRADE_TO_NEWER_DEPENDENCIES: false
125-
PYTHON_MAJOR_MINOR_VERSION: ${{ inputs.default-python-version }}
126-
PYTHON_VERSION: ${{ inputs.default-python-version }}
125+
PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
126+
PYTHON_VERSION: "${{ inputs.default-python-version }}"
127127
GITHUB_REPOSITORY: ${{ github.repository }}
128128
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
129129
GITHUB_USERNAME: ${{ github.actor }}

.github/workflows/additional-prod-image-tests.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
runners: ${{ inputs.runners }}
7171
platform: ${{ inputs.platform }}
7272
python-versions: "[ '${{ inputs.default-python-version }}' ]"
73-
default-python-version: ${{ inputs.default-python-version }}
73+
default-python-version: "${{ inputs.default-python-version }}"
7474
branch: ${{ inputs.default-branch }}
7575
upgrade-to-newer-dependencies: ${{ inputs.upgrade-to-newer-dependencies }}
7676
constraints-branch: ${{ inputs.constraints-branch }}
@@ -85,7 +85,7 @@ jobs:
8585
runners: ${{ inputs.runners }}
8686
platform: ${{ inputs.platform }}
8787
python-versions: "[ '${{ inputs.default-python-version }}' ]"
88-
default-python-version: ${{ inputs.default-python-version }}
88+
default-python-version: "${{ inputs.default-python-version }}"
8989
branch: ${{ inputs.default-branch }}
9090
upgrade-to-newer-dependencies: ${{ inputs.upgrade-to-newer-dependencies }}
9191
constraints-branch: ${{ inputs.constraints-branch }}
@@ -116,13 +116,13 @@ jobs:
116116
with:
117117
platform: ${{ inputs.platform }}
118118
image-type: "prod"
119-
python: ${{ inputs.default-python-version }}
119+
python: "${{ inputs.default-python-version }}"
120120
use-uv: ${{ inputs.use-uv }}
121121
- name: "Test examples of PROD image building"
122122
env:
123123
GITHUB_REPOSITORY: ${{ github.repository }}
124124
DEFAULT_BRANCH: ${{ inputs.default-branch }}
125-
DEFAULT_PYTHON_VERSION: ${{ inputs.default-python-version }}
125+
DEFAULT_PYTHON_VERSION: "${{ inputs.default-python-version }}"
126126
run: "
127127
cd ./docker-tests && \
128128
TEST_IMAGE=\"ghcr.io/$GITHUB_REPOSITORY/$DEFAULT_BRANCH\

.github/workflows/airflow-distributions-tests.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,16 @@ on: # yamllint disable-line rule:truthy
6161
description: "Whether local venv should be used for tests (true/false)"
6262
required: true
6363
type: string
64+
test-timeout:
65+
required: false
66+
type: number
67+
default: 60
68+
6469
permissions:
6570
contents: read
6671
jobs:
6772
distributions-tests:
68-
timeout-minutes: 80
73+
timeout-minutes: ${{ fromJSON(inputs.test-timeout) }}
6974
name: ${{ inputs.distribution-name }}:P${{ matrix.python-version }} tests
7075
runs-on: ${{ fromJSON(inputs.runners) }}
7176
strategy:

.github/workflows/basic-tests.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ jobs:
223223
VERBOSE: "false"
224224
SKIP_BREEZE_PRE_COMMITS: "true"
225225
SKIP: ${{ inputs.skip-pre-commits }}
226-
COLUMNS: "250"
226+
COLUMNS: "202"
227227

228228
test-git-clone-on-windows:
229229
timeout-minutes: 5
@@ -267,6 +267,8 @@ jobs:
267267
skip-pre-commits: ${{ inputs.skip-pre-commits }}
268268
- name: "Autoupdate all pre-commits"
269269
run: pre-commit autoupdate
270+
- name: "Autoupdate Lucas-C/pre-commit-hooks to bleeding edge"
271+
run: pre-commit autoupdate --bleeding-edge --freeze --repo https://github.com/Lucas-C/pre-commit-hooks
270272
- name: "Run automated upgrade for black"
271273
run: >
272274
pre-commit run
@@ -284,25 +286,23 @@ jobs:
284286
# For UV we are not failing the upgrade installers check if it is updated because
285287
# it is upgraded very frequently, so we want to manually upgrade it rather than
286288
# get notified about it - until it stabilizes in 1.* version
287-
- name: "Run automated upgrade for uv (open to see if new version is updated)"
289+
- name: "Run automated upgrade for uv (not failing - just informational)"
288290
run: >
289291
pre-commit run
290292
--all-files --show-diff-on-failure --color always --verbose
291293
--hook-stage manual update-installers-and-pre-commit || true
292294
if: always()
293295
env:
294-
UPGRADE_UV: "true"
295296
UPGRADE_PIP: "false"
296297
UPGRADE_PRE_COMMIT: "false"
297298
UPGRADE_NODE_LTS: "false"
298-
- name: "Run automated upgrade for pip, pre-commit and node"
299+
- name: "Run automated upgrade for pip, pre-commit and node (failing if needed)"
299300
run: >
300301
pre-commit run
301302
--all-files --show-diff-on-failure --color always --verbose
302303
--hook-stage manual update-installers-and-pre-commit
303304
if: always()
304305
env:
305-
UPGRADE_UV: "false"
306306
UPGRADE_PIP: "true"
307307
UPGRADE_PRE_COMMIT: "true"
308308
UPGRADE_NODE_LTS: "true"

.github/workflows/ci-amd.yml

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ jobs:
186186
- name: Install pre-commit, uv, and pre-commit-uv
187187
shell: bash
188188
env:
189-
UV_VERSION: "0.7.14" # Keep this comment to allow automatic replacement of uv version
189+
UV_VERSION: "0.7.19" # Keep this comment to allow automatic replacement of uv version
190190
PRE_COMMIT_VERSION: "4.2.0" # Keep this comment to allow automatic replacement of pre-commit version
191191
PRE_COMMIT_UV_VERSION: "4.1.4" # Keep this comment to allow automatic replacement of pre-commit-uv version
192192
run: |
@@ -209,7 +209,7 @@ jobs:
209209
run-ui-tests: ${{needs.build-info.outputs.run-ui-tests}}
210210
run-www-tests: ${{needs.build-info.outputs.run-www-tests}}
211211
needs-api-codegen: ${{needs.build-info.outputs.needs-api-codegen}}
212-
default-python-version: ${{needs.build-info.outputs.default-python-version}}
212+
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
213213
basic-checks-only: ${{needs.build-info.outputs.basic-checks-only}}
214214
skip-pre-commits: ${{needs.build-info.outputs.skip-pre-commits}}
215215
canary-run: ${{needs.build-info.outputs.canary-run}}
@@ -248,14 +248,13 @@ jobs:
248248
contents: read
249249
packages: write
250250
id-token: write
251-
if: needs.build-info.outputs.canary-run == 'true'
252251
with:
253252
runners: ${{ needs.build-info.outputs.amd-runners }}
254253
platform: "linux/amd64"
255254
python-versions: ${{ needs.build-info.outputs.python-versions }}
256255
branch: ${{ needs.build-info.outputs.default-branch }}
257256
constraints-branch: ${{ needs.build-info.outputs.default-constraints-branch }}
258-
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
257+
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
259258
upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
260259
skip-pre-commits: ${{ needs.build-info.outputs.skip-pre-commits }}
261260
docker-cache: ${{ needs.build-info.outputs.docker-cache }}
@@ -275,6 +274,8 @@ jobs:
275274
runners: ${{ needs.build-info.outputs.amd-runners }}
276275
platform: "linux/amd64"
277276
python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }}
277+
python-versions: ${{ needs.build-info.outputs.python-versions }}
278+
generate-pypi-constraints: "true"
278279
# generate no providers constraints only in canary builds - they take quite some time to generate
279280
# they are not needed for regular builds, they are only needed to update constraints in canaries
280281
generate-no-providers-constraints: ${{ needs.build-info.outputs.canary-run }}
@@ -296,7 +297,7 @@ jobs:
296297
python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }}
297298
branch: ${{ needs.build-info.outputs.default-branch }}
298299
canary-run: ${{ needs.build-info.outputs.canary-run }}
299-
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
300+
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
300301
docs-list-as-string: ${{ needs.build-info.outputs.docs-list-as-string }}
301302
latest-versions-only: ${{ needs.build-info.outputs.latest-versions-only }}
302303
basic-checks-only: ${{ needs.build-info.outputs.basic-checks-only }}
@@ -329,7 +330,7 @@ jobs:
329330
runners: ${{ needs.build-info.outputs.amd-runners }}
330331
platform: "linux/amd64"
331332
canary-run: ${{ needs.build-info.outputs.canary-run }}
332-
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
333+
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
333334
upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
334335
selected-providers-list-as-string: ${{ needs.build-info.outputs.selected-providers-list-as-string }}
335336
# yamllint disable rule:line-length
@@ -352,7 +353,7 @@ jobs:
352353
runners: ${{ needs.build-info.outputs.amd-runners }}
353354
platform: "linux/amd64"
354355
helm-test-packages: ${{ needs.build-info.outputs.helm-test-packages }}
355-
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
356+
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
356357
use-uv: ${{ needs.build-info.outputs.use-uv }}
357358
if: >
358359
needs.build-info.outputs.needs-helm-tests == 'true' &&
@@ -612,7 +613,7 @@ jobs:
612613
providers-test-types-list-as-strings-in-json: >
613614
${{ needs.build-info.outputs.providers-test-types-list-as-strings-in-json }}
614615
run-coverage: ${{ needs.build-info.outputs.run-coverage }}
615-
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
616+
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
616617
python-versions: ${{ needs.build-info.outputs.python-versions }}
617618
default-postgres-version: ${{ needs.build-info.outputs.default-postgres-version }}
618619
excluded-providers-as-string: ${{ needs.build-info.outputs.excluded-providers-as-string }}
@@ -636,7 +637,7 @@ jobs:
636637
testable-core-integrations: ${{ needs.build-info.outputs.testable-core-integrations }}
637638
testable-providers-integrations: ${{ needs.build-info.outputs.testable-providers-integrations }}
638639
run-system-tests: ${{ needs.build-info.outputs.run-tests }}
639-
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
640+
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
640641
default-postgres-version: ${{ needs.build-info.outputs.default-postgres-version }}
641642
default-mysql-version: ${{ needs.build-info.outputs.default-mysql-version }}
642643
run-coverage: ${{ needs.build-info.outputs.run-coverage }}
@@ -721,7 +722,7 @@ jobs:
721722
upload-image-artifact: "true"
722723
upload-package-artifact: "true"
723724
python-versions: ${{ needs.build-info.outputs.python-versions }}
724-
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
725+
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
725726
branch: ${{ needs.build-info.outputs.default-branch }}
726727
use-uv: ${{ needs.build-info.outputs.use-uv }}
727728
upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
@@ -742,7 +743,7 @@ jobs:
742743
upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
743744
docker-cache: ${{ needs.build-info.outputs.docker-cache }}
744745
disable-airflow-repo-cache: ${{ needs.build-info.outputs.disable-airflow-repo-cache }}
745-
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
746+
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
746747
canary-run: ${{ needs.build-info.outputs.canary-run }}
747748
use-uv: ${{ needs.build-info.outputs.use-uv }}
748749
if: needs.build-info.outputs.prod-image-build == 'true'
@@ -776,14 +777,15 @@ jobs:
776777
with:
777778
runners: ${{ needs.build-info.outputs.amd-runners }}
778779
platform: "linux/amd64"
779-
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
780+
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
780781
python-versions: ${{ needs.build-info.outputs.python-versions }}
781782
use-uv: ${{ needs.build-info.outputs.use-uv }}
782783
canary-run: ${{ needs.build-info.outputs.canary-run }}
783784
distribution-name: "task-sdk"
784785
distribution-cmd-format: "prepare-task-sdk-distributions"
785786
test-type: "task-sdk-tests"
786787
use-local-venv: 'false'
788+
test-timeout: 20
787789
if: >
788790
( needs.build-info.outputs.run-task-sdk-tests == 'true' ||
789791
needs.build-info.outputs.run-tests == 'true' &&
@@ -819,12 +821,19 @@ jobs:
819821
go-version: 1.24
820822
cache-dependency-path: go-sdk/go.sum
821823

824+
# keep this in sync with go.mod in go-sdk/
825+
- name: Setup Gotestsum
826+
shell: bash
827+
run: |
828+
go install gotest.tools/gotestsum@ddd0b05a6878e2e8257a2abe6e7df66cebc53d0e # v1.12.3
829+
gotestsum --version
830+
822831
- name: "Cleanup dist files"
823832
run: rm -fv ./dist/*
824833

825834
- name: Run Go tests
826835
working-directory: ./go-sdk
827-
run: go test -v ./...
836+
run: gotestsum --format testname ./...
828837

829838
tests-airflow-ctl:
830839
name: "Airflow CTL tests"
@@ -836,14 +845,15 @@ jobs:
836845
with:
837846
runners: ${{ needs.build-info.outputs.amd-runners }}
838847
platform: "linux/amd64"
839-
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
848+
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
840849
python-versions: ${{ needs.build-info.outputs.python-versions }}
841850
use-uv: ${{ needs.build-info.outputs.use-uv }}
842851
canary-run: ${{ needs.build-info.outputs.canary-run }}
843852
distribution-name: "airflow-ctl"
844853
distribution-cmd-format: "prepare-airflow-ctl-distributions"
845854
test-type: "airflow-ctl-tests"
846855
use-local-venv: 'true'
856+
test-timeout: 20
847857
if: >
848858
( needs.build-info.outputs.run-airflow-ctl-tests == 'true' ||
849859
needs.build-info.outputs.run-tests == 'true' &&
@@ -889,7 +899,7 @@ jobs:
889899
python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }}
890900
branch: ${{ needs.build-info.outputs.default-branch }}
891901
constraints-branch: ${{ needs.build-info.outputs.default-constraints-branch }}
892-
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
902+
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
893903
upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
894904
include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
895905
docker-cache: ${{ needs.build-info.outputs.docker-cache }}
@@ -948,7 +958,7 @@ jobs:
948958
- name: "Setup python"
949959
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
950960
with:
951-
python-version: ${{ inputs.default-python-version }}
961+
python-version: "${{ inputs.default-python-version }}"
952962
- name: "Summarize all warnings"
953963
run: |
954964
./scripts/ci/testing/summarize_captured_warnings.py ./artifacts \

0 commit comments

Comments
 (0)