Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/actions/prepare_breeze_and_image/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ runs:
else
./scripts/tools/free_up_disk_space.sh
fi
- name: "Configure runner for parallel tests"
shell: bash
run: ./scripts/ci/configure_runner_for_parallel_tests.sh
# Only self-hosted runners are large enough to run more test types at once than the default pools fit.
if: runner.environment == 'self-hosted'
- name: "Install Breeze"
uses: ./.github/actions/breeze
id: breeze
Expand Down
4 changes: 3 additions & 1 deletion .github/actions/runs-on-cost-summary/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
# Puts the job's EC2 cost next to the GitHub-hosted price in the job summary. Used by every job
# that can run on RunsOn: through the breeze action, or directly by jobs that do not install Breeze.
name: 'RunsOn cost summary'
description: 'Add the EC2 cost of a RunsOn job to its summary; a no-op elsewhere.'
description: 'Add the EC2 cost and CPU and memory use of a RunsOn job to its summary; a no-op elsewhere.'
runs:
using: 'composite'
steps:
Expand All @@ -28,3 +28,5 @@ runs:
uses: runs-on/action@17b59092eb37ebfdbb034460892887c09100eaa3 # v2.5.0
with:
show_costs: summary
# Charts the job's CPU and memory use in its summary, to size its runner class from measurements.
metrics: cpu,memory
8 changes: 4 additions & 4 deletions .github/workflows/additional-prod-image-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ jobs:
timeout-minutes: 60
name: "Docker Compose quick start with PROD image verifying"
if: inputs.run-generic-prod-image-tests == 'true'
runs-on: ${{ format(fromJSON(inputs.runners)[0], '32+64', '128+256') }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
env:
PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
GITHUB_REPOSITORY: ${{ github.repository }}
Expand Down Expand Up @@ -331,7 +331,7 @@ jobs:
uses: ./.github/workflows/airflow-e2e-tests.yml
with:
workflow-name: "Event driven e2e test"
runners: ${{ format(inputs.runners, '32+64', '128+256') }}
runners: ${{ format(inputs.runners, '8+16', '32+64') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
Expand Down Expand Up @@ -359,7 +359,7 @@ jobs:
uses: ./.github/workflows/airflow-e2e-tests.yml
with:
workflow-name: "Go SDK e2e test"
runners: ${{ format(inputs.runners, '32+64', '128+256') }}
runners: ${{ format(inputs.runners, '8+16', '32+64') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
Expand All @@ -373,7 +373,7 @@ jobs:
uses: ./.github/workflows/airflow-e2e-tests.yml
with:
workflow-name: "TypeScript SDK e2e test"
runners: ${{ format(inputs.runners, '32+64', '128+256') }}
runners: ${{ format(inputs.runners, '8+16', '32+64') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/basic-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ jobs:
# Without a pin uv picks the runner's system Python, which can be older than Airflow supports.
UV_PYTHON: "${{ inputs.default-python-version }}"
SHARED_DISTRIBUTIONS: ${{ join(fromJSON(inputs.shared-distributions-as-json), ' ') }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand Down Expand Up @@ -255,7 +255,7 @@ jobs:
check-translation-completness:
timeout-minutes: 15
name: "Check translation completeness"
runs-on: ${{ format(fromJSON(inputs.runners)[0], '32+64', '128+256') }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand Down
30 changes: 18 additions & 12 deletions .github/workflows/ci-amd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,10 @@ jobs:
${{ steps.selective-checks.outputs.providers-compatibility-tests-matrix }}
providers-test-types-list-as-strings-in-json: >-
${{ steps.selective-checks.outputs.providers-test-types-list-as-strings-in-json }}
providers-split-test-types-list-as-strings-in-json: >-
${{ steps.selective-checks.outputs.providers-split-test-types-list-as-strings-in-json }}
providers-xdist-test-types-list-as-strings-in-json: >-
${{ steps.selective-checks.outputs.providers-xdist-test-types-list-as-strings-in-json }}
pull-request-labels: ${{ steps.source-run-info.outputs.pr-labels }}
python-versions-list-as-string: ${{ steps.selective-checks.outputs.python-versions-list-as-string }}
python-versions: ${{ steps.selective-checks.outputs.python-versions }}
Expand Down Expand Up @@ -797,7 +801,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "postgres"
test-name: "Postgres"
Expand All @@ -808,7 +812,7 @@ jobs:
excluded-providers-as-string: ${{ needs.build-info.outputs.excluded-providers-as-string }}
excludes: ${{ needs.build-info.outputs.postgres-exclude }}
test-types-as-strings-in-json: >
${{ needs.build-info.outputs.providers-test-types-list-as-strings-in-json }}
${{ needs.build-info.outputs.providers-split-test-types-list-as-strings-in-json }}
include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
run-migration-tests: "true"
run-coverage: ${{ needs.build-info.outputs.run-coverage }}
Expand Down Expand Up @@ -856,7 +860,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "mysql"
test-name: "MySQL"
Expand All @@ -867,7 +871,7 @@ jobs:
excluded-providers-as-string: ${{ needs.build-info.outputs.excluded-providers-as-string }}
excludes: ${{ needs.build-info.outputs.mysql-exclude }}
test-types-as-strings-in-json: >
${{ needs.build-info.outputs.providers-test-types-list-as-strings-in-json }}
${{ needs.build-info.outputs.providers-split-test-types-list-as-strings-in-json }}
include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
run-coverage: ${{ needs.build-info.outputs.run-coverage }}
run-migration-tests: "true"
Expand Down Expand Up @@ -916,7 +920,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "sqlite"
test-name: "Sqlite"
Expand All @@ -929,7 +933,7 @@ jobs:
excluded-providers-as-string: ${{ needs.build-info.outputs.excluded-providers-as-string }}
excludes: ${{ needs.build-info.outputs.sqlite-exclude }}
test-types-as-strings-in-json: >
${{ needs.build-info.outputs.providers-test-types-list-as-strings-in-json }}
${{ needs.build-info.outputs.providers-split-test-types-list-as-strings-in-json }}
include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
run-coverage: ${{ needs.build-info.outputs.run-coverage }}
run-migration-tests: "true"
Expand Down Expand Up @@ -990,7 +994,7 @@ jobs:
excluded-providers-as-string: ${{ needs.build-info.outputs.excluded-providers-as-string }}
excludes: ${{ needs.build-info.outputs.sqlite-exclude }}
test-types-as-strings-in-json: >
${{ needs.build-info.outputs.providers-test-types-list-as-strings-in-json }}
${{ needs.build-info.outputs.providers-xdist-test-types-list-as-strings-in-json }}
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 }}
Expand Down Expand Up @@ -1020,6 +1024,8 @@ jobs:
${{ needs.build-info.outputs.core-test-types-list-as-strings-in-json }}
providers-test-types-list-as-strings-in-json: >
${{ needs.build-info.outputs.providers-test-types-list-as-strings-in-json }}
providers-split-test-types-list-as-strings-in-json: >
${{ needs.build-info.outputs.providers-split-test-types-list-as-strings-in-json }}
run-coverage: ${{ needs.build-info.outputs.run-coverage }}
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
python-versions: ${{ needs.build-info.outputs.python-versions }}
Expand Down Expand Up @@ -1206,7 +1212,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.runner-type, '32+64', '128+256') }}
runners: ${{ format(needs.build-info.outputs.runner-type, '8+16', '32+64') }}
platform: ${{ needs.build-info.outputs.platform }}
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
python-versions: ${{ needs.build-info.outputs.python-versions }}
Expand Down Expand Up @@ -1291,7 +1297,7 @@ jobs:
tests-ts-sdk:
name: "TypeScript SDK tests"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '4+8', '16+32') }}
timeout-minutes: 15
permissions:
contents: read
Expand Down Expand Up @@ -1327,7 +1333,7 @@ jobs:
tests-java-sdk:
name: "Java SDK tests"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '32+64', '128+256') }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
timeout-minutes: 15
permissions:
contents: read
Expand Down Expand Up @@ -1359,7 +1365,7 @@ jobs:
build-java-sdk-docs:
name: "Java SDK docs"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '4+8', '16+32') }}
timeout-minutes: 30
permissions:
contents: read
Expand Down Expand Up @@ -1772,7 +1778,7 @@ jobs:
- tests-special
- tests-with-lowest-direct-resolution-core
- tests-with-lowest-direct-resolution-providers
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '4+8', '16+32') }}
if: needs.build-info.outputs.run-unit-tests == 'true'
steps:
- name: "Cleanup repo"
Expand Down
30 changes: 18 additions & 12 deletions .github/workflows/ci-arm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,10 @@ jobs:
${{ steps.selective-checks.outputs.providers-compatibility-tests-matrix }}
providers-test-types-list-as-strings-in-json: >-
${{ steps.selective-checks.outputs.providers-test-types-list-as-strings-in-json }}
providers-split-test-types-list-as-strings-in-json: >-
${{ steps.selective-checks.outputs.providers-split-test-types-list-as-strings-in-json }}
providers-xdist-test-types-list-as-strings-in-json: >-
${{ steps.selective-checks.outputs.providers-xdist-test-types-list-as-strings-in-json }}
pull-request-labels: ${{ steps.source-run-info.outputs.pr-labels }}
python-versions-list-as-string: ${{ steps.selective-checks.outputs.python-versions-list-as-string }}
python-versions: ${{ steps.selective-checks.outputs.python-versions }}
Expand Down Expand Up @@ -678,7 +682,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "postgres"
test-name: "Postgres"
Expand All @@ -689,7 +693,7 @@ jobs:
excluded-providers-as-string: ${{ needs.build-info.outputs.excluded-providers-as-string }}
excludes: ${{ needs.build-info.outputs.postgres-exclude }}
test-types-as-strings-in-json: >
${{ needs.build-info.outputs.providers-test-types-list-as-strings-in-json }}
${{ needs.build-info.outputs.providers-split-test-types-list-as-strings-in-json }}
include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
run-migration-tests: "true"
run-coverage: ${{ needs.build-info.outputs.run-coverage }}
Expand Down Expand Up @@ -737,7 +741,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "mysql"
test-name: "MySQL"
Expand All @@ -748,7 +752,7 @@ jobs:
excluded-providers-as-string: ${{ needs.build-info.outputs.excluded-providers-as-string }}
excludes: ${{ needs.build-info.outputs.mysql-exclude }}
test-types-as-strings-in-json: >
${{ needs.build-info.outputs.providers-test-types-list-as-strings-in-json }}
${{ needs.build-info.outputs.providers-split-test-types-list-as-strings-in-json }}
include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
run-coverage: ${{ needs.build-info.outputs.run-coverage }}
run-migration-tests: "true"
Expand Down Expand Up @@ -797,7 +801,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "sqlite"
test-name: "Sqlite"
Expand All @@ -810,7 +814,7 @@ jobs:
excluded-providers-as-string: ${{ needs.build-info.outputs.excluded-providers-as-string }}
excludes: ${{ needs.build-info.outputs.sqlite-exclude }}
test-types-as-strings-in-json: >
${{ needs.build-info.outputs.providers-test-types-list-as-strings-in-json }}
${{ needs.build-info.outputs.providers-split-test-types-list-as-strings-in-json }}
include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
run-coverage: ${{ needs.build-info.outputs.run-coverage }}
run-migration-tests: "true"
Expand Down Expand Up @@ -871,7 +875,7 @@ jobs:
excluded-providers-as-string: ${{ needs.build-info.outputs.excluded-providers-as-string }}
excludes: ${{ needs.build-info.outputs.sqlite-exclude }}
test-types-as-strings-in-json: >
${{ needs.build-info.outputs.providers-test-types-list-as-strings-in-json }}
${{ needs.build-info.outputs.providers-xdist-test-types-list-as-strings-in-json }}
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 }}
Expand Down Expand Up @@ -901,6 +905,8 @@ jobs:
${{ needs.build-info.outputs.core-test-types-list-as-strings-in-json }}
providers-test-types-list-as-strings-in-json: >
${{ needs.build-info.outputs.providers-test-types-list-as-strings-in-json }}
providers-split-test-types-list-as-strings-in-json: >
${{ needs.build-info.outputs.providers-split-test-types-list-as-strings-in-json }}
run-coverage: ${{ needs.build-info.outputs.run-coverage }}
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
python-versions: ${{ needs.build-info.outputs.python-versions }}
Expand Down Expand Up @@ -1087,7 +1093,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.runner-type, '32+64', '128+256') }}
runners: ${{ format(needs.build-info.outputs.runner-type, '8+16', '32+64') }}
platform: ${{ needs.build-info.outputs.platform }}
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
python-versions: ${{ needs.build-info.outputs.python-versions }}
Expand Down Expand Up @@ -1172,7 +1178,7 @@ jobs:
tests-ts-sdk:
name: "TypeScript SDK tests"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '4+8', '16+32') }}
timeout-minutes: 15
permissions:
contents: read
Expand Down Expand Up @@ -1208,7 +1214,7 @@ jobs:
tests-java-sdk:
name: "Java SDK tests"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '32+64', '128+256') }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
timeout-minutes: 15
permissions:
contents: read
Expand Down Expand Up @@ -1240,7 +1246,7 @@ jobs:
build-java-sdk-docs:
name: "Java SDK docs"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '4+8', '16+32') }}
timeout-minutes: 30
permissions:
contents: read
Expand Down Expand Up @@ -1651,7 +1657,7 @@ jobs:
- tests-special
- tests-with-lowest-direct-resolution-core
- tests-with-lowest-direct-resolution-providers
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '4+8', '16+32') }}
if: needs.build-info.outputs.run-unit-tests == 'true'
steps:
- name: "Cleanup repo"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/finalize-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ permissions:
contents: read
jobs:
update-constraints:
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
timeout-minutes: 80
name: "Update constraints"
permissions:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/helm-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
tests-helm-release:
timeout-minutes: 80
name: "Release Helm"
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
env:
PYTHON_MAJOR_MINOR_VERSION: "${{inputs.default-python-version}}"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration-system-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ jobs:
timeout-minutes: 30
if: inputs.testable-core-integrations != '[]'
name: "Integration core ${{ matrix.integration }}"
runs-on: ${{ format(fromJSON(inputs.runners)[0], '32+64', '128+256') }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
strategy:
fail-fast: false
max-parallel: 20
Expand Down
Loading
Loading