From 2f47560a53409451c00298631ca7aaf3f2972ceb Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 1 Nov 2026 06:20:04 +0000 Subject: [PATCH 1/2] ci: pin `ubuntu-latest` runners to `ubuntu-24.04` Co-Authored-By: AJ Steers --- .github/workflows/actionlint.yml | 2 +- .github/workflows/auto_merge_notification.yml | 2 +- .github/workflows/autofix.yml | 2 +- .github/workflows/codeql-vulnerability-checks.yml | 2 +- .github/workflows/deploy_cloud_mcp.yml | 8 ++++---- .github/workflows/evals-command.yml | 2 +- .github/workflows/poe-command.yml | 2 +- .github/workflows/prerelease-command.yml | 6 +++--- .github/workflows/pydoc_preview.yml | 2 +- .github/workflows/pydoc_publish.yml | 4 ++-- .github/workflows/pypi_publish.yml | 2 +- .github/workflows/python_lint.yml | 8 ++++---- .github/workflows/python_pytest.yml | 8 ++++---- .github/workflows/rc-branch-update.yml | 2 +- .github/workflows/release_drafter.yml | 2 +- .github/workflows/semantic_pr_check.yml | 2 +- .github/workflows/slash_command_dispatch.yml | 2 +- .github/workflows/test-pr-command.yml | 6 +++--- .github/workflows/tk-todo-check.yml | 2 +- 19 files changed, 33 insertions(+), 33 deletions(-) diff --git a/.github/workflows/actionlint.yml b/.github/workflows/actionlint.yml index 51b67f935..f791d6d8f 100644 --- a/.github/workflows/actionlint.yml +++ b/.github/workflows/actionlint.yml @@ -12,7 +12,7 @@ permissions: jobs: actionlint: name: actionlint - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 diff --git a/.github/workflows/auto_merge_notification.yml b/.github/workflows/auto_merge_notification.yml index a0105eb6f..8d4283acc 100644 --- a/.github/workflows/auto_merge_notification.yml +++ b/.github/workflows/auto_merge_notification.yml @@ -8,7 +8,7 @@ on: jobs: update-description: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: pull-requests: write steps: diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index 03ee649a1..a503f223e 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -13,7 +13,7 @@ permissions: jobs: python-autofix: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 diff --git a/.github/workflows/codeql-vulnerability-checks.yml b/.github/workflows/codeql-vulnerability-checks.yml index e1e9ed64d..c2a783b10 100644 --- a/.github/workflows/codeql-vulnerability-checks.yml +++ b/.github/workflows/codeql-vulnerability-checks.yml @@ -15,7 +15,7 @@ concurrency: jobs: analyze: name: Analyze - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 timeout-minutes: 30 permissions: security-events: write diff --git a/.github/workflows/deploy_cloud_mcp.yml b/.github/workflows/deploy_cloud_mcp.yml index f61780bbb..c417c792e 100644 --- a/.github/workflows/deploy_cloud_mcp.yml +++ b/.github/workflows/deploy_cloud_mcp.yml @@ -71,7 +71,7 @@ concurrency: jobs: resolve-vars: name: Resolve Variables - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: trigger_type: ${{ steps.resolve-vars.outputs.trigger_type }} requirement: ${{ steps.resolve-vars.outputs.requirement }} @@ -196,7 +196,7 @@ jobs: name: Deploy to Internal Endpoints needs: resolve-vars if: needs.resolve-vars.outputs.deploy_internal_preview == 'true' || needs.resolve-vars.outputs.deploy_internal == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Build cloud-mcp dispatch payloads id: build-dispatch-payload @@ -258,7 +258,7 @@ jobs: name: Deploy to Prod Endpoints needs: resolve-vars if: needs.resolve-vars.outputs.deploy_prod == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Build platform-internal dispatch payload id: build-dispatch-payload @@ -318,7 +318,7 @@ jobs: name: Summarize needs: [resolve-vars, deploy-internal, deploy-prod] if: always() && needs.resolve-vars.result == 'success' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Summarize dispatch env: diff --git a/.github/workflows/evals-command.yml b/.github/workflows/evals-command.yml index 9e3dcc34b..d8e025f04 100644 --- a/.github/workflows/evals-command.yml +++ b/.github/workflows/evals-command.yml @@ -32,7 +32,7 @@ concurrency: jobs: run-evals: name: Run Cloud MCP Evals - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 timeout-minutes: 90 env: PR: ${{ inputs.pr }} diff --git a/.github/workflows/poe-command.yml b/.github/workflows/poe-command.yml index 51b1cf1ba..7a8b0a32e 100644 --- a/.github/workflows/poe-command.yml +++ b/.github/workflows/poe-command.yml @@ -16,7 +16,7 @@ permissions: jobs: run-poe-command: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Authenticate as GitHub App uses: actions/create-github-app-token@v2 diff --git a/.github/workflows/prerelease-command.yml b/.github/workflows/prerelease-command.yml index ccfdf31bc..1dabf4fdb 100644 --- a/.github/workflows/prerelease-command.yml +++ b/.github/workflows/prerelease-command.yml @@ -24,7 +24,7 @@ permissions: jobs: resolve-pr: name: Set up Workflow - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Resolve workflow variables id: vars @@ -70,7 +70,7 @@ jobs: build-and-publish: name: Trigger Publish Workflow needs: [resolve-pr] - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Authenticate as GitHub App uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2.1.4 @@ -98,7 +98,7 @@ jobs: name: Write Status to PR needs: [resolve-pr, build-and-publish] if: always() - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Post success comment if: needs.build-and-publish.result == 'success' diff --git a/.github/workflows/pydoc_preview.yml b/.github/workflows/pydoc_preview.yml index cc92dd32d..67b784d52 100644 --- a/.github/workflows/pydoc_preview.yml +++ b/.github/workflows/pydoc_preview.yml @@ -14,7 +14,7 @@ permissions: jobs: preview_docs: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout code diff --git a/.github/workflows/pydoc_publish.yml b/.github/workflows/pydoc_publish.yml index b15db8f1e..b8304ba8e 100644 --- a/.github/workflows/pydoc_publish.yml +++ b/.github/workflows/pydoc_publish.yml @@ -32,7 +32,7 @@ jobs: dispatch_from_rc: name: Dispatch Docs Publish on `main` if: github.ref != 'refs/heads/main' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: actions: write steps: @@ -44,7 +44,7 @@ jobs: publish_docs: name: Publish Docs if: github.ref == 'refs/heads/main' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 environment: name: "github-pages" url: ${{ steps.deployment.outputs.page_url }} diff --git a/.github/workflows/pypi_publish.yml b/.github/workflows/pypi_publish.yml index c5acaa46e..c53d30c53 100644 --- a/.github/workflows/pypi_publish.yml +++ b/.github/workflows/pypi_publish.yml @@ -34,7 +34,7 @@ env: jobs: publish_to_pypi: name: Publish Package to PyPI - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: id-token: write contents: read diff --git a/.github/workflows/python_lint.yml b/.github/workflows/python_lint.yml index 3401d8fef..db513813d 100644 --- a/.github/workflows/python_lint.yml +++ b/.github/workflows/python_lint.yml @@ -14,7 +14,7 @@ permissions: jobs: ruff-lint-check: name: Ruff Lint Check - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: # Common steps: - name: Checkout code @@ -34,7 +34,7 @@ jobs: ruff-format-check: name: Ruff Format Check - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: # Common steps: - name: Checkout code @@ -54,7 +54,7 @@ jobs: python-type-checks: name: Python Type Checks - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: # Common steps: - name: Checkout code @@ -74,7 +74,7 @@ jobs: public-api-import-guard: name: Public API Import Guard - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: # Common steps: - name: Checkout code diff --git a/.github/workflows/python_pytest.yml b/.github/workflows/python_pytest.yml index f83b97abc..410ed15e9 100644 --- a/.github/workflows/python_pytest.yml +++ b/.github/workflows/python_pytest.yml @@ -26,7 +26,7 @@ permissions: jobs: pytest-no-creds: name: Pytest (No Creds) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: contents: read code-quality: write @@ -218,7 +218,7 @@ jobs: pytest-args: tests/integration_tests/cloud/ - shard: other pytest-args: tests/integration_tests/ --ignore=tests/integration_tests/test_all_cache_types.py --ignore=tests/integration_tests/cloud/ - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: checks: write contents: read @@ -297,7 +297,7 @@ jobs: needs: [pytest-unit, pytest-integration] # Runs whenever the upstream jobs ran (even if some tests failed); skipped on forks with them. if: always() && needs.pytest-integration.result != 'skipped' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: contents: read code-quality: write @@ -349,7 +349,7 @@ jobs: dependency-analysis: name: Dependency Analysis with Deptry - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 diff --git a/.github/workflows/rc-branch-update.yml b/.github/workflows/rc-branch-update.yml index 8ef65ef1a..1ee398282 100644 --- a/.github/workflows/rc-branch-update.yml +++ b/.github/workflows/rc-branch-update.yml @@ -46,7 +46,7 @@ concurrency: jobs: sync: name: Fast-forward, merge, or open PR - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: # ---------- Setup ---------- - name: Authenticate as GitHub App diff --git a/.github/workflows/release_drafter.yml b/.github/workflows/release_drafter.yml index ba734e9b6..0e17f9b31 100644 --- a/.github/workflows/release_drafter.yml +++ b/.github/workflows/release_drafter.yml @@ -18,7 +18,7 @@ jobs: permissions: contents: write pull-requests: write - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Install uv uses: astral-sh/setup-uv@v7 diff --git a/.github/workflows/semantic_pr_check.yml b/.github/workflows/semantic_pr_check.yml index b4ec26edf..533ebdc27 100644 --- a/.github/workflows/semantic_pr_check.yml +++ b/.github/workflows/semantic_pr_check.yml @@ -17,7 +17,7 @@ permissions: jobs: validate_pr_title: name: Validate PR title - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1 if: ${{ github.event.pull_request.draft == false }} diff --git a/.github/workflows/slash_command_dispatch.yml b/.github/workflows/slash_command_dispatch.yml index 559e93caf..b045238f1 100644 --- a/.github/workflows/slash_command_dispatch.yml +++ b/.github/workflows/slash_command_dispatch.yml @@ -14,7 +14,7 @@ jobs: slashCommandDispatch: # Only allow slash commands on pull request (not on issues) if: ${{ github.event.issue.pull_request }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Authenticate as GitHub App diff --git a/.github/workflows/test-pr-command.yml b/.github/workflows/test-pr-command.yml index ceaf29eb6..d1d84893b 100644 --- a/.github/workflows/test-pr-command.yml +++ b/.github/workflows/test-pr-command.yml @@ -26,7 +26,7 @@ permissions: jobs: start-workflow: name: Start Workflow - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Resolve workflow variables @@ -157,7 +157,7 @@ jobs: log-success-comment: name: Append 'Success' Comment needs: [pytest-on-demand] - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Append success comment uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0 @@ -173,7 +173,7 @@ jobs: # This job will only run if the workflow fails needs: [pytest-on-demand, start-workflow] if: always() && needs.pytest-on-demand.result == 'failure' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Append failure comment uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0 diff --git a/.github/workflows/tk-todo-check.yml b/.github/workflows/tk-todo-check.yml index 4e17d4443..22a32dd1e 100644 --- a/.github/workflows/tk-todo-check.yml +++ b/.github/workflows/tk-todo-check.yml @@ -12,7 +12,7 @@ permissions: jobs: tk-todo-check: # IGNORE:TK name: Check for TK-TODO markers # IGNORE:TK - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 From 1be4d392d03e914a8e8aa267f585b8647e7f6628 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 1 Nov 2026 06:22:52 +0000 Subject: [PATCH 2/2] ci: pin Ubuntu matrix legs to `ubuntu-24.04` Co-Authored-By: AJ Steers --- .github/workflows/fix-pr-command.yml | 2 +- .github/workflows/python_pytest.yml | 2 +- .github/workflows/test-pr-command.yml | 2 +- .github/workflows/uv-lock-command.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/fix-pr-command.yml b/.github/workflows/fix-pr-command.yml index 171564cea..0b7675bf0 100644 --- a/.github/workflows/fix-pr-command.yml +++ b/.github/workflows/fix-pr-command.yml @@ -36,7 +36,7 @@ jobs: ] fail-fast: false - runs-on: "${{ matrix.os }}-latest" + runs-on: "${{ matrix.os == 'Ubuntu' && 'ubuntu-24.04' || format('{0}-latest', matrix.os) }}" steps: # Custom steps to fetch the PR and checkout the code: diff --git a/.github/workflows/python_pytest.yml b/.github/workflows/python_pytest.yml index 410ed15e9..04eb1904d 100644 --- a/.github/workflows/python_pytest.yml +++ b/.github/workflows/python_pytest.yml @@ -110,7 +110,7 @@ jobs: ] fail-fast: false - runs-on: "${{ matrix.os }}-latest" + runs-on: "${{ matrix.os == 'Ubuntu' && 'ubuntu-24.04' || format('{0}-latest', matrix.os) }}" permissions: checks: write contents: read diff --git a/.github/workflows/test-pr-command.yml b/.github/workflows/test-pr-command.yml index d1d84893b..daf5ed49c 100644 --- a/.github/workflows/test-pr-command.yml +++ b/.github/workflows/test-pr-command.yml @@ -69,7 +69,7 @@ jobs: Windows, ] fail-fast: false - runs-on: "${{ matrix.os }}-latest" + runs-on: "${{ matrix.os == 'Ubuntu' && 'ubuntu-24.04' || format('{0}-latest', matrix.os) }}" env: # Enforce UTF-8 encoding so Windows runners don't fail inside the connector code. # TODO: See if we can fully enforce this within PyAirbyte itself. diff --git a/.github/workflows/uv-lock-command.yml b/.github/workflows/uv-lock-command.yml index 8c8423181..c43df3ef4 100644 --- a/.github/workflows/uv-lock-command.yml +++ b/.github/workflows/uv-lock-command.yml @@ -33,7 +33,7 @@ jobs: ] fail-fast: false - runs-on: "${{ matrix.os }}-latest" + runs-on: "${{ matrix.os == 'Ubuntu' && 'ubuntu-24.04' || format('{0}-latest', matrix.os) }}" steps: # Custom steps to fetch the PR and checkout the code: