Widen the Spot pool for RunsOn runners: more families, capacity-optimized, size ranges (#75822)

* Let RunsOn x64 runners use more instance families for Spot

Generated-by: Claude Opus 5

* Take RunsOn Spot runners from capacity-optimized pools

Generated-by: Claude Opus 5

* Let RunsOn runners take Spot from up to twice the requested size

Generated-by: Claude Opus 5
This commit is contained in:
Jarek Potiuk authored and GitHub committed 2026-10-27 22:43:27 +01:00
1 parent fccfbf8ad2
commit d17f121363
21 files changed
+129 -114

No files matched your search

@@ -62,7 +62,7 @@ jobs:
# layer that builds Python from source, which takes 11-18 minutes for Python 3.11+ on hosted runners.
timeout-minutes: 35
name: Check that image builds quickly
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
env:
UPGRADE_TO_NEWER_DEPENDENCIES: false
PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
@@ -163,7 +163,7 @@ jobs:
timeout-minutes: 60
name: "Test examples of PROD image building"
if: inputs.run-generic-prod-image-tests == 'true'
runs-on: ${{ format(fromJSON(inputs.runners)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
env:
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -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, 128) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '32+64', '128+256') }}
env:
PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
GITHUB_REPOSITORY: ${{ github.repository }}
@@ -232,7 +232,7 @@ jobs:
task-sdk-integration-tests:
timeout-minutes: 60
name: "Task SDK integration tests with PROD image"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
env:
PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
GITHUB_REPOSITORY: ${{ github.repository }}
@@ -267,7 +267,7 @@ jobs:
uses: ./.github/workflows/airflow-e2e-tests.yml
with:
workflow-name: "Regular e2e test"
runners: ${{ format(inputs.runners, 8, 32) }}
runners: ${{ format(inputs.runners, '8+16', '32+64') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
@@ -277,7 +277,7 @@ jobs:
uses: ./.github/workflows/airflow-e2e-tests.yml
with:
workflow-name: "Remote logging e2e test"
runners: ${{ format(inputs.runners, 4, 16) }}
runners: ${{ format(inputs.runners, '4+8', '16+32') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
@@ -291,7 +291,7 @@ jobs:
uses: ./.github/workflows/airflow-e2e-tests.yml
with:
workflow-name: "Elasticsearch remote logging e2e test"
runners: ${{ format(inputs.runners, 8, 32) }}
runners: ${{ format(inputs.runners, '8+16', '32+64') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
@@ -305,7 +305,7 @@ jobs:
uses: ./.github/workflows/airflow-e2e-tests.yml
with:
workflow-name: "OpenSearch remote logging e2e test"
runners: ${{ format(inputs.runners, 8, 32) }}
runners: ${{ format(inputs.runners, '8+16', '32+64') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
@@ -320,7 +320,7 @@ jobs:
uses: ./.github/workflows/airflow-e2e-tests.yml
with:
workflow-name: "XCom object storage backend e2e test"
runners: ${{ format(inputs.runners, 4, 16) }}
runners: ${{ format(inputs.runners, '4+8', '16+32') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
@@ -331,7 +331,7 @@ jobs:
uses: ./.github/workflows/airflow-e2e-tests.yml
with:
workflow-name: "Event driven e2e test"
runners: ${{ format(inputs.runners, 32, 128) }}
runners: ${{ format(inputs.runners, '32+64', '128+256') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
@@ -345,7 +345,7 @@ jobs:
uses: ./.github/workflows/airflow-e2e-tests.yml
with:
workflow-name: "Java SDK e2e test"
runners: ${{ format(inputs.runners, 8, 32) }}
runners: ${{ format(inputs.runners, '8+16', '32+64') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
@@ -359,7 +359,7 @@ jobs:
uses: ./.github/workflows/airflow-e2e-tests.yml
with:
workflow-name: "Go SDK e2e test"
runners: ${{ format(inputs.runners, 32, 128) }}
runners: ${{ format(inputs.runners, '32+64', '128+256') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
@@ -373,7 +373,7 @@ jobs:
uses: ./.github/workflows/airflow-e2e-tests.yml
with:
workflow-name: "TypeScript SDK e2e test"
runners: ${{ format(inputs.runners, 32, 128) }}
runners: ${{ format(inputs.runners, '32+64', '128+256') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
@@ -387,7 +387,7 @@ jobs:
uses: ./.github/workflows/airflow-e2e-tests.yml
with:
workflow-name: "OpenLineage e2e test"
runners: ${{ format(inputs.runners, 8, 32) }}
runners: ${{ format(inputs.runners, '8+16', '32+64') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
@@ -407,7 +407,7 @@ jobs:
compat: ${{ fromJSON(inputs.providers-compatibility-tests-matrix) }}
uses: ./.github/workflows/openlineage-e2e-compat-tests.yml
with:
runners: ${{ format(inputs.runners, 8, 32) }}
runners: ${{ format(inputs.runners, '8+16', '32+64') }}
platform: ${{ inputs.platform }}
default-python-version: "${{ inputs.default-python-version }}"
use-uv: ${{ inputs.use-uv }}
@@ -453,7 +453,7 @@ jobs:
airflow-ctl-integration-tests:
timeout-minutes: 60
name: "Airflow CTL integration tests with PROD image"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
env:
PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
GITHUB_REPOSITORY: ${{ github.repository }}
+9 -9
View File
@@ -98,7 +98,7 @@ jobs:
run-breeze-tests:
timeout-minutes: 10
name: Breeze unit tests
runs-on: ${{ format(fromJSON(inputs.runners)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
steps:
- name: "Cleanup repo"
shell: bash
@@ -116,7 +116,7 @@ jobs:
run-breeze-integration-tests:
timeout-minutes: 120
name: Breeze integration tests
runs-on: ${{ format(fromJSON(inputs.runners)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
if: inputs.run-breeze-integration-tests == 'true'
steps:
- name: "Cleanup repo"
@@ -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, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
@@ -185,7 +185,7 @@ jobs:
tests-scripts:
timeout-minutes: 10
name: Scripts tests
runs-on: ${{ format(fromJSON(inputs.runners)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
if: inputs.run-scripts-tests == 'true'
env:
# Without a pin uv picks the runner's system Python, which can be older than Airflow supports.
@@ -216,7 +216,7 @@ jobs:
tests-ui:
timeout-minutes: 15
name: React UI tests
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
if: inputs.run-ui-tests == 'true'
steps:
- name: "Cleanup repo"
@@ -255,7 +255,7 @@ jobs:
check-translation-completness:
timeout-minutes: 15
name: "Check translation completeness"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 32, 128) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '32+64', '128+256') }}
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
@@ -272,7 +272,7 @@ jobs:
static-checks-basic-checks-only:
timeout-minutes: 30
name: "Static checks: basic checks only"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
if: inputs.basic-checks-only == 'true'
steps:
- name: "Cleanup repo"
@@ -358,7 +358,7 @@ jobs:
test-airflow-release-commands:
timeout-minutes: 80
name: "Test Airflow release commands"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
env:
PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
GITHUB_REPOSITORY: ${{ github.repository }}
@@ -413,7 +413,7 @@ jobs:
timeout-minutes: 30
name: "Test Airflow standalone commands"
if: inputs.run-generic-basic-tests == 'true'
runs-on: ${{ format(fromJSON(inputs.runners)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
env:
AIRFLOW_HOME: ~/airflow
FORCE_COLOR: 1
+21 -21
View File
@@ -605,7 +605,7 @@ jobs:
timeout-minutes: 45
name: "MyPy providers checks"
needs: [build-info, build-ci-images]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '4+8', '16+32') }}
if: needs.build-info.outputs.run-mypy-providers == 'true'
env:
PYTHON_MAJOR_MINOR_VERSION: "${{ needs.build-info.outputs.default-python-version }}"
@@ -646,7 +646,7 @@ jobs:
timeout-minutes: 20
name: "Migration round-trip check"
needs: [build-info, build-ci-images]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
if: needs.build-info.outputs.has-migrations == 'true'
env:
PYTHON_MAJOR_MINOR_VERSION: "${{ needs.build-info.outputs.default-python-version }}"
@@ -768,7 +768,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "postgres"
test-name: "Postgres"
@@ -797,7 +797,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "postgres"
test-name: "Postgres"
@@ -826,7 +826,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "mysql"
test-name: "MySQL"
@@ -856,7 +856,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "mysql"
test-name: "MySQL"
@@ -885,7 +885,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "sqlite"
test-name: "Sqlite"
@@ -916,7 +916,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "sqlite"
test-name: "Sqlite"
@@ -947,7 +947,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.runner-type, 32, 128) }}
runners: ${{ format(needs.build-info.outputs.runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "sqlite"
test-name: ""
@@ -977,7 +977,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.runner-type, 32, 128) }}
runners: ${{ format(needs.build-info.outputs.runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "sqlite"
test-name: ""
@@ -1064,7 +1064,7 @@ jobs:
if: >
needs.build-info.outputs.run-unit-tests == 'true'
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
test-name: "LowestDeps"
force-lowest-dependencies: "true"
@@ -1094,7 +1094,7 @@ jobs:
packages: read
if: needs.build-info.outputs.run-unit-tests == 'true'
with:
runners: ${{ format(needs.build-info.outputs.runner-type, 32, 128) }}
runners: ${{ format(needs.build-info.outputs.runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
test-name: "LowestDeps"
force-lowest-dependencies: "true"
@@ -1206,7 +1206,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.runner-type, 32, 128) }}
runners: ${{ format(needs.build-info.outputs.runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
python-versions: ${{ needs.build-info.outputs.python-versions }}
@@ -1222,7 +1222,7 @@ jobs:
tests-go-sdk:
name: "Go SDK tests"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
timeout-minutes: 15
permissions:
contents: read
@@ -1291,7 +1291,7 @@ jobs:
tests-ts-sdk:
name: "TypeScript SDK tests"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
timeout-minutes: 15
permissions:
contents: read
@@ -1327,7 +1327,7 @@ jobs:
tests-java-sdk:
name: "Java SDK tests"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], 32, 128) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '32+64', '128+256') }}
timeout-minutes: 15
permissions:
contents: read
@@ -1359,7 +1359,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, 32) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
timeout-minutes: 30
permissions:
contents: read
@@ -1391,7 +1391,7 @@ jobs:
build-ts-sdk-docs:
name: "TypeScript SDK docs"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '4+8', '16+32') }}
timeout-minutes: 30
permissions:
contents: read
@@ -1428,7 +1428,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.runner-type, 4, 16) }}
runners: ${{ format(needs.build-info.outputs.runner-type, '4+8', '16+32') }}
platform: ${{ needs.build-info.outputs.platform }}
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
python-versions: ${{ needs.build-info.outputs.python-versions }}
@@ -1449,7 +1449,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.runner-type, 8, 32) }}
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 }}"
use-uv: ${{ needs.build-info.outputs.use-uv }}
@@ -1772,7 +1772,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, 32) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
if: needs.build-info.outputs.run-unit-tests == 'true'
steps:
- name: "Cleanup repo"
+21 -21
View File
@@ -486,7 +486,7 @@ jobs:
timeout-minutes: 45
name: "MyPy providers checks"
needs: [build-info, build-ci-images]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '4+8', '16+32') }}
if: needs.build-info.outputs.run-mypy-providers == 'true'
env:
PYTHON_MAJOR_MINOR_VERSION: "${{ needs.build-info.outputs.default-python-version }}"
@@ -527,7 +527,7 @@ jobs:
timeout-minutes: 20
name: "Migration round-trip check"
needs: [build-info, build-ci-images]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
if: needs.build-info.outputs.has-migrations == 'true'
env:
PYTHON_MAJOR_MINOR_VERSION: "${{ needs.build-info.outputs.default-python-version }}"
@@ -649,7 +649,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "postgres"
test-name: "Postgres"
@@ -678,7 +678,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "postgres"
test-name: "Postgres"
@@ -707,7 +707,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "mysql"
test-name: "MySQL"
@@ -737,7 +737,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "mysql"
test-name: "MySQL"
@@ -766,7 +766,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "sqlite"
test-name: "Sqlite"
@@ -797,7 +797,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "sqlite"
test-name: "Sqlite"
@@ -828,7 +828,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.runner-type, 32, 128) }}
runners: ${{ format(needs.build-info.outputs.runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "sqlite"
test-name: ""
@@ -858,7 +858,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.runner-type, 32, 128) }}
runners: ${{ format(needs.build-info.outputs.runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
backend: "sqlite"
test-name: ""
@@ -945,7 +945,7 @@ jobs:
if: >
needs.build-info.outputs.run-unit-tests == 'true'
with:
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, 8, '32+64') }}
runners: ${{ format(needs.build-info.outputs.in-memory-runner-type, '8+16', '32+128') }}
platform: ${{ needs.build-info.outputs.platform }}
test-name: "LowestDeps"
force-lowest-dependencies: "true"
@@ -975,7 +975,7 @@ jobs:
packages: read
if: needs.build-info.outputs.run-unit-tests == 'true'
with:
runners: ${{ format(needs.build-info.outputs.runner-type, 32, 128) }}
runners: ${{ format(needs.build-info.outputs.runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
test-name: "LowestDeps"
force-lowest-dependencies: "true"
@@ -1087,7 +1087,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.runner-type, 32, 128) }}
runners: ${{ format(needs.build-info.outputs.runner-type, '32+64', '128+256') }}
platform: ${{ needs.build-info.outputs.platform }}
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
python-versions: ${{ needs.build-info.outputs.python-versions }}
@@ -1103,7 +1103,7 @@ jobs:
tests-go-sdk:
name: "Go SDK tests"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
timeout-minutes: 15
permissions:
contents: read
@@ -1172,7 +1172,7 @@ jobs:
tests-ts-sdk:
name: "TypeScript SDK tests"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
timeout-minutes: 15
permissions:
contents: read
@@ -1208,7 +1208,7 @@ jobs:
tests-java-sdk:
name: "Java SDK tests"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], 32, 128) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '32+64', '128+256') }}
timeout-minutes: 15
permissions:
contents: read
@@ -1240,7 +1240,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, 32) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
timeout-minutes: 30
permissions:
contents: read
@@ -1272,7 +1272,7 @@ jobs:
build-ts-sdk-docs:
name: "TypeScript SDK docs"
needs: [build-info]
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '4+8', '16+32') }}
timeout-minutes: 30
permissions:
contents: read
@@ -1309,7 +1309,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.runner-type, 4, 16) }}
runners: ${{ format(needs.build-info.outputs.runner-type, '4+8', '16+32') }}
platform: ${{ needs.build-info.outputs.platform }}
default-python-version: "${{ needs.build-info.outputs.default-python-version }}"
python-versions: ${{ needs.build-info.outputs.python-versions }}
@@ -1330,7 +1330,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(needs.build-info.outputs.runner-type, 8, 32) }}
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 }}"
use-uv: ${{ needs.build-info.outputs.use-uv }}
@@ -1651,7 +1651,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, 32) }}
runs-on: ${{ format(fromJSON(needs.build-info.outputs.runner-type)[0], '8+16', '32+64') }}
if: needs.build-info.outputs.run-unit-tests == 'true'
steps:
- name: "Cleanup repo"
+1 -1
View File
@@ -128,7 +128,7 @@ jobs:
python-version: ${{ fromJSON(inputs.python-versions) }}
timeout-minutes: 110
name: "Build CI ${{ inputs.platform }} image ${{ matrix.python-version }}"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
env:
BACKEND: sqlite
PYTHON_MAJOR_MINOR_VERSION: ${{ matrix.python-version }}
+4 -4
View File
@@ -124,7 +124,7 @@ jobs:
static-checks:
timeout-minutes: 45
name: "Static checks"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 32, 128) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '32+64', '128+256') }}
env:
PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
UPGRADE_TO_NEWER_DEPENDENCIES: "${{ inputs.upgrade-to-newer-dependencies }}"
@@ -192,7 +192,7 @@ jobs:
build-docs:
timeout-minutes: 150
name: "Build documentation"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 32, 128) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '32+64', '128+256') }}
if: inputs.docs-build == 'true'
env:
GITHUB_REPOSITORY: ${{ github.repository }}
@@ -351,7 +351,7 @@ jobs:
id-token: write
contents: read
needs: build-docs
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
env:
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -483,7 +483,7 @@ jobs:
test-python-api-client:
timeout-minutes: 60
name: "Test Python API client"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
if: inputs.run-api-codegen == 'true'
env:
BACKEND: "postgres"
+2 -2
View File
@@ -80,7 +80,7 @@ permissions:
contents: read
jobs:
update-constraints:
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
timeout-minutes: 80
name: "Update constraints"
permissions:
@@ -128,7 +128,7 @@ jobs:
# Constraint commits are now handled by the dedicated update-constraints-on-push workflow
# triggered when uv.lock changes are pushed to main/test branches.
dependency-upgrade-summary:
runs-on: ${{ format(fromJSON(inputs.runners)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
needs: [update-constraints]
if: inputs.upgrade-to-newer-dependencies == 'true' && inputs.platform == 'linux/amd64'
name: "Deps ${{ matrix.python-version }}:${{ matrix.constraints-mode }}"
+1 -1
View File
@@ -85,7 +85,7 @@ jobs:
contents: read
timeout-minutes: 70
name: Generate constraints for ${{ matrix.python-version }} on ${{ inputs.platform }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
strategy:
fail-fast: false
max-parallel: 20
+2 -2
View File
@@ -52,7 +52,7 @@ jobs:
name: >-
Unit tests Helm: ${{ matrix.helm-test-package }}
(K8S ${{ matrix.kubernetes-version }})
runs-on: ${{ format(fromJSON(inputs.runners)[0], 32, 128) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '32+64', '128+256') }}
strategy:
fail-fast: false
max-parallel: 20
@@ -98,7 +98,7 @@ jobs:
tests-helm-release:
timeout-minutes: 80
name: "Release Helm"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
env:
PYTHON_MAJOR_MINOR_VERSION: "${{inputs.default-python-version}}"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -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, 128) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '32+64', '128+256') }}
strategy:
fail-fast: false
max-parallel: 20
@@ -126,7 +126,7 @@ jobs:
timeout-minutes: 30
if: inputs.testable-providers-integrations != '[]' && inputs.skip-providers-tests != 'true'
name: "Integration: providers ${{ matrix.integration }}"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
strategy:
fail-fast: false
max-parallel: 20
@@ -176,7 +176,7 @@ jobs:
timeout-minutes: 30
if: inputs.run-system-tests == 'true'
name: "System Tests"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
env:
BACKEND: "postgres"
BACKEND_VERSION: ${{ inputs.default-postgres-version }}
+2 -2
View File
@@ -62,7 +62,7 @@ jobs:
tests-kubernetes:
timeout-minutes: 60
name: "K8S System:${{ matrix.executor }}-${{ matrix.kubernetes-combo }}-${{ matrix.use-standard-naming }}"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
strategy:
fail-fast: false
max-parallel: 20
@@ -149,7 +149,7 @@ jobs:
tests-kubernetes-lang-sdk:
timeout-minutes: 60
name: "K8S Lang-SDK:${{ inputs.lang-sdk-kubernetes-combo }}"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
env:
DEBUG_RESOURCES: ${{ inputs.debug-resources }}
INCLUDE_SUCCESS_OUTPUTS: ${{ inputs.include-success-outputs }}
@@ -53,7 +53,7 @@ jobs:
smoke-test-overlay:
timeout-minutes: 40
name: "Overlay smoke test: ${{ matrix.overlay }}"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 4, 16) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '4+8', '16+32') }}
strategy:
fail-fast: false
max-parallel: 4
+2 -2
View File
@@ -119,7 +119,7 @@ jobs:
build-prod-packages:
name: "Build Airflow and provider distributions"
timeout-minutes: 10
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
if: inputs.prod-image-build == 'true'
env:
PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
@@ -199,7 +199,7 @@ jobs:
python-version: ${{ fromJSON(inputs.python-versions) }}
timeout-minutes: 80
name: "Build PROD ${{ inputs.build-type }} image ${{ matrix.python-version }}"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
needs:
- build-prod-packages
env:
+2 -2
View File
@@ -79,7 +79,7 @@ on: # yamllint disable-line rule:truthy
jobs:
push-ci-image-cache:
name: "Push CI ${{ inputs.cache-type }}:${{ matrix.python }} image cache "
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
permissions:
contents: read
packages: write
@@ -149,7 +149,7 @@ jobs:
push-prod-image-cache:
name: "Push PROD ${{ inputs.cache-type }}:${{ matrix.python }} image cache"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
permissions:
contents: read
packages: write
+11 -11
View File
@@ -98,7 +98,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(inputs.in-memory-runners, 8, '32+64') }}
runners: ${{ format(inputs.in-memory-runners, '8+16', '32+128') }}
platform: ${{ inputs.platform }}
downgrade-sqlalchemy: "true"
test-name: "MinSQLAlchemy-Postgres"
@@ -123,7 +123,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(inputs.in-memory-runners, 8, '32+64') }}
runners: ${{ format(inputs.in-memory-runners, '8+16', '32+128') }}
platform: ${{ inputs.platform }}
downgrade-sqlalchemy: "true"
test-name: "MinSQLAlchemy-Postgres"
@@ -148,7 +148,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(inputs.in-memory-runners, 8, '32+64') }}
runners: ${{ format(inputs.in-memory-runners, '8+16', '32+128') }}
platform: ${{ inputs.platform }}
upgrade-sqlalchemy: "true"
test-name: "LatestSQLAlchemy-Postgres"
@@ -173,7 +173,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(inputs.in-memory-runners, 8, '32+64') }}
runners: ${{ format(inputs.in-memory-runners, '8+16', '32+128') }}
platform: ${{ inputs.platform }}
upgrade-sqlalchemy: "true"
test-name: "LatestSQLAlchemy-Postgres"
@@ -198,7 +198,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(inputs.in-memory-runners, 8, '32+64') }}
runners: ${{ format(inputs.in-memory-runners, '8+16', '32+128') }}
platform: ${{ inputs.platform }}
upgrade-boto: "true"
test-name: "LatestBoto-Postgres"
@@ -224,7 +224,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(inputs.in-memory-runners, 8, '32+64') }}
runners: ${{ format(inputs.in-memory-runners, '8+16', '32+128') }}
platform: ${{ inputs.platform }}
upgrade-boto: "true"
test-name: "LatestBoto-Postgres"
@@ -250,7 +250,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(inputs.in-memory-runners, 8, '32+64') }}
runners: ${{ format(inputs.in-memory-runners, '8+16', '32+128') }}
platform: ${{ inputs.platform }}
downgrade-pendulum: "true"
test-name: "Pendulum2-Postgres"
@@ -276,7 +276,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(inputs.in-memory-runners, 8, '32+64') }}
runners: ${{ format(inputs.in-memory-runners, '8+16', '32+128') }}
platform: ${{ inputs.platform }}
downgrade-pendulum: "true"
test-name: "Pendulum2-Postgres"
@@ -302,7 +302,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(inputs.runners, 4, 16) }}
runners: ${{ format(inputs.runners, '4+8', '16+32') }}
platform: ${{ inputs.platform }}
test-name: "Postgres"
test-scope: "Quarantined"
@@ -327,7 +327,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(inputs.runners, 4, 16) }}
runners: ${{ format(inputs.runners, '4+8', '16+32') }}
platform: ${{ inputs.platform }}
test-name: "Postgres"
test-scope: "Quarantined"
@@ -352,7 +352,7 @@ jobs:
contents: read
packages: read
with:
runners: ${{ format(inputs.runners, 32, 128) }}
runners: ${{ format(inputs.runners, '32+64', '128+256') }}
platform: ${{ inputs.platform }}
test-name: "SystemTest"
test-scope: "System"
+2 -2
View File
@@ -72,7 +72,7 @@ jobs:
prepare-install-verify-provider-distributions:
timeout-minutes: 80
name: "Providers ${{ matrix.package-format }} tests"
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
strategy:
fail-fast: false
matrix:
@@ -178,7 +178,7 @@ jobs:
timeout-minutes: 80
# yamllint disable rule:line-length
name: Compat ${{ matrix.compat.airflow-version }}:P${{ matrix.compat.python-version }}:${{ matrix.test-types.description }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners)[0], '8+16', '32+64') }}
strategy:
fail-fast: false
matrix:
+1 -1
View File
@@ -88,7 +88,7 @@ jobs:
test-ui-e2e-tests:
timeout-minutes: 90
name: ${{ inputs.workflow-name || 'UI E2E Tests' }}
runs-on: ${{ format(fromJSON(inputs.runners || '["ubuntu-24.04"]')[0], 8, 32) }}
runs-on: ${{ format(fromJSON(inputs.runners || '["ubuntu-24.04"]')[0], '8+16', '32+64') }}
env:
PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version || '3.11' }}"
GITHUB_REPOSITORY: ${{ github.repository }}
+9 -5
View File
@@ -762,9 +762,13 @@ approval `use self-hosted runners` needs, so for that label approve the head com
reopen the PR.
The RunsOn value is a label template such as
`["runs-on=<run_id>/family=.../image=ubuntu22-full-x64/volume=150gb/cpu={0}/ram={1}"]`. Every job
picks its size class with `format(fromJSON(inputs.runners)[0], <cpu>, <ram>)` (4/16, 8/32 or 32/128),
or, for a single-job reusable workflow, its caller passes `format(<runners>, <cpu>, <ram>)`;
`["runs-on=<run_id>/family=.../image=ubuntu22-full-x64/volume=150gb/spot=co/cpu={0}/ram={1}"]`. Every job
picks its size class with `format(fromJSON(inputs.runners)[0], <cpu>, <ram>)` (`'4+8', '16+32'`,
`'8+16', '32+64'` or `'32+64', '128+256'`), or, for a single-job reusable workflow, its caller passes
`format(<runners>, <cpu>, <ram>)`. Each class is a range up to twice its size, so Spot can come from
the larger instance types too; xdist follows the host's CPUs, so a larger runner runs more test workers.
`spot=co` takes Spot from the pools with the most capacity regardless of price, which is cheaper than
the on-demand launch and whole-job rerun a capacity miss or interruption costs;
on a public label the same call returns the label unchanged. Steps that only make sense on RunsOn are
gated on `runner.environment == 'self-hosted'`:
@@ -781,8 +785,8 @@ jobs whose databases wait on disk syncs: the Postgres, MySQL and Sqlite test job
core tests and the SQLAlchemy, Boto and Pendulum special tests. Its label adds
[`extras=tmpfs`](https://runs-on.com/docs/runners/capabilities/yolo-mode/), which puts
`/var/lib/docker`, `/tmp` and `/home/runner` on a RAM disk, and also accepts the memory-optimized
r-family. The jobs ask for 8 CPUs and 32 or 64 GB (`ram=32+64`), as the RAM disk is capped at the
runner's memory before RunsOn v3.5.0. On public runners the output equals `runner-type`, and so it does
r-family. The jobs ask for 8 to 16 CPUs and 32 to 128 GB (`cpu=8+16/ram=32+128`), as the RAM disk
is capped at the runner's memory before RunsOn v3.5.0. On public runners the output equals `runner-type`, and so it does
on RunsOn while the repository variable `USE_IN_MEMORY_DOCKER` is `false`: the switch for moving docker
back to disk without a PR.
@@ -40,21 +40,26 @@ PUBLIC_AMD_RUNNERS = '["ubuntu-22.04"]'
PUBLIC_ARM_RUNNERS = '["ubuntu-22.04-arm"]'
# RunsOn (runs-on.com) EC2 runner label templates. Jobs fill in their size class with
# `format(<label>, cpu, ram)` in the workflow; the same call leaves the public labels unchanged.
# `spot=co` (capacity-optimized) takes Spot from the pools least likely to run out or be reclaimed
# instead of RunsOn's default price-capacity-optimized: a capacity miss or an interruption sends the
# runner to on-demand (and reruns the whole job), which costs more than the higher Spot price.
RUNS_ON_AMD_RUNNER_TEMPLATE = (
"runs-on={run_id}/family=m7a+m7i+m6a+m6i/image=ubuntu22-full-x64/volume=150gb/cpu={{0}}/ram={{1}}"
"runs-on={run_id}/family=m8a+m8i+m7a+m7i+m6a+m6i+m5a+m5/image=ubuntu22-full-x64/volume=150gb/spot=co"
"/cpu={{0}}/ram={{1}}"
)
RUNS_ON_ARM_RUNNER_TEMPLATE = (
"runs-on={run_id}/family=m8g+m7g+m6g/image=ubuntu22-full-arm64/volume=150gb/cpu={{0}}/ram={{1}}"
"runs-on={run_id}/family=m8g+m7g+m6g/image=ubuntu22-full-arm64/volume=150gb/spot=co/cpu={{0}}/ram={{1}}"
)
# The same runners with docker, /tmp and /home/runner on a RAM disk (RunsOn `extras=tmpfs`), for jobs whose
# databases wait on disk syncs. The RAM disk is capped at 100% of RAM before RunsOn v3.5.0, so these jobs
# ask for memory headroom and also accept the memory-optimized r-family.
RUNS_ON_AMD_IN_MEMORY_RUNNER_TEMPLATE = (
"runs-on={run_id}/family=m7a+m7i+m6a+m6i+r7a+r7i+r6a+r6i/image=ubuntu22-full-x64/volume=150gb"
"runs-on={run_id}/family=m8a+m8i+m7a+m7i+m6a+m6i+m5a+m5+r8i+r7a+r7i+r6a+r6i"
"/image=ubuntu22-full-x64/volume=150gb/spot=co"
"/cpu={{0}}/ram={{1}}/extras=tmpfs"
)
RUNS_ON_ARM_IN_MEMORY_RUNNER_TEMPLATE = (
"runs-on={run_id}/family=m8g+m7g+m6g+r8g+r7g+r6g/image=ubuntu22-full-arm64/volume=150gb"
"runs-on={run_id}/family=m8g+m7g+m6g+r8g+r7g+r6g/image=ubuntu22-full-arm64/volume=150gb/spot=co"
"/cpu={{0}}/ram={{1}}/extras=tmpfs"
)
+10 -4
View File
@@ -4910,14 +4910,20 @@ def test_providers_with_test_side_effects_are_shared_process_providers():
assert provider not in LONG_RUNNING_TEST_PROVIDERS
RUNS_ON_AMD = '["runs-on=42/family=m7a+m7i+m6a+m6i/image=ubuntu22-full-x64/volume=150gb/cpu={0}/ram={1}"]'
RUNS_ON_ARM = '["runs-on=42/family=m8g+m7g+m6g/image=ubuntu22-full-arm64/volume=150gb/cpu={0}/ram={1}"]'
RUNS_ON_AMD = (
'["runs-on=42/family=m8a+m8i+m7a+m7i+m6a+m6i+m5a+m5/image=ubuntu22-full-x64/volume=150gb/spot=co'
'/cpu={0}/ram={1}"]'
)
RUNS_ON_ARM = (
'["runs-on=42/family=m8g+m7g+m6g/image=ubuntu22-full-arm64/volume=150gb/spot=co/cpu={0}/ram={1}"]'
)
RUNS_ON_AMD_IN_MEMORY = (
'["runs-on=42/family=m7a+m7i+m6a+m6i+r7a+r7i+r6a+r6i/image=ubuntu22-full-x64/volume=150gb'
'["runs-on=42/family=m8a+m8i+m7a+m7i+m6a+m6i+m5a+m5+r8i+r7a+r7i+r6a+r6i'
"/image=ubuntu22-full-x64/volume=150gb/spot=co"
'/cpu={0}/ram={1}/extras=tmpfs"]'
)
RUNS_ON_ARM_IN_MEMORY = (
'["runs-on=42/family=m8g+m7g+m6g+r8g+r7g+r6g/image=ubuntu22-full-arm64/volume=150gb'
'["runs-on=42/family=m8g+m7g+m6g+r8g+r7g+r6g/image=ubuntu22-full-arm64/volume=150gb/spot=co'
'/cpu={0}/ram={1}/extras=tmpfs"]'
)