From cc9211fcecb6c4bc28f37307847e25c91def645e Mon Sep 17 00:00:00 2001 From: Tim Conley Date: Wed, 30 Sep 2026 10:09:53 -0700 Subject: [PATCH 1/2] Use extra-large runners for CI tests --- .github/workflows/ci.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f5393b0ef..8c7ff7728 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,6 +23,8 @@ jobs: python: ["3.10", "3.14"] os: [ubuntu-latest, ubuntu-arm, macos-arm, windows-latest] include: + - os: ubuntu-latest + runsOn: ubuntu-latest-16-cores - os: ubuntu-latest python: "3.14" docsTarget: true @@ -106,7 +108,7 @@ jobs: # FIPS binary and build the release wheel. fips-build: timeout-minutes: 45 - runs-on: ubuntu-latest + runs-on: ubuntu-latest-16-cores steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: @@ -190,7 +192,7 @@ jobs: matrix: include: - cibw-build: cp310-musllinux_x86_64 - runsOn: ubuntu-latest + runsOn: ubuntu-latest-16-cores - cibw-build: cp310-musllinux_aarch64 runsOn: ubuntu-24.04-arm64-2-core runs-on: ${{ matrix.runsOn }} @@ -214,7 +216,7 @@ jobs: check-protos: timeout-minutes: 30 - runs-on: ubuntu-latest + runs-on: ubuntu-latest-16-cores steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: @@ -251,7 +253,7 @@ jobs: test-latest-deps: timeout-minutes: 30 - runs-on: ubuntu-latest + runs-on: ubuntu-latest-16-cores steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: @@ -292,7 +294,7 @@ jobs: cloud-test: if: ${{ github.actor != 'dependabot[bot]' && (github.event.pull_request.head.repo.full_name == '' || github.event.pull_request.head.repo.full_name == 'temporalio/sdk-python') }} timeout-minutes: 30 - runs-on: ubuntu-latest + runs-on: ubuntu-latest-16-cores steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: From bd50b8680a60aff278b2dd2d5b6bbbc681c0eaa5 Mon Sep 17 00:00:00 2001 From: Tim Conley Date: Wed, 30 Sep 2026 10:30:19 -0700 Subject: [PATCH 2/2] Cap pytest workers on extra-large runners --- .github/workflows/ci.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8c7ff7728..ded718a77 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,6 +25,9 @@ jobs: include: - os: ubuntu-latest runsOn: ubuntu-latest-16-cores + # Keep xdist parallelism at the standard runner level so the local + # test service is not overwhelmed by more concurrent workers. + pytestWorkerArg: "-n 4" - os: ubuntu-latest python: "3.14" docsTarget: true @@ -64,14 +67,14 @@ jobs: - run: poe build-develop - run: poe lint - run: mkdir junit-xml - - run: poe test ${{matrix.pytestExtraArgs}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}.xml + - run: poe test ${{matrix.pytestExtraArgs}} ${{matrix.pytestWorkerArg}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}.xml timeout-minutes: 15 # Time skipping doesn't yet support ARM - if: ${{ !endsWith(matrix.os, '-arm') }} - run: poe test ${{matrix.pytestExtraArgs}} -s --workflow-environment time-skipping --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}--time-skipping.xml + run: poe test ${{matrix.pytestExtraArgs}} ${{matrix.pytestWorkerArg}} -s --workflow-environment time-skipping --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}--time-skipping.xml timeout-minutes: 10 - if: ${{ matrix.openaiTestTarget && (github.event.pull_request.head.repo.full_name == '' || github.event.pull_request.head.repo.full_name == 'temporalio/sdk-python') }} - run: poe test tests/contrib/openai_agents/test_openai.py ${{matrix.pytestExtraArgs}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}--openai.xml + run: poe test tests/contrib/openai_agents/test_openai.py ${{matrix.pytestExtraArgs}} ${{matrix.pytestWorkerArg}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}--openai.xml timeout-minutes: 10 env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}