Investigation: minimal repro #3337
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Continuous Integration | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| - "releases/*" | |
| env: | |
| COLUMNS: 120 | |
| jobs: | |
| # Build and test the project | |
| build-lint-test: | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python: ["3.9", "3.13"] | |
| os: [ubuntu-latest, ubuntu-arm, macos-intel, macos-arm, windows-latest] | |
| include: | |
| # On 3.9 there is a problem with import errors caused by pytests' loader that surface due | |
| # to a bug in CPython (https://github.com/python/cpython/issues/91351), so we avoid using | |
| # the assert rewriter. | |
| - python: "3.9" | |
| pytestExtraArgs: "--assert=plain" | |
| - os: ubuntu-latest | |
| python: "3.13" | |
| docsTarget: true | |
| cloudTestTarget: true | |
| openaiTestTarget: true | |
| clippyLinter: true | |
| - os: ubuntu-latest | |
| python: "3.9" | |
| protoCheckTarget: true | |
| - os: ubuntu-arm | |
| runsOn: ubuntu-24.04-arm64-2-core | |
| - os: macos-intel | |
| runsOn: macos-13 | |
| # On 3.13.3 there is some issue with macOS intel where it hangs after pytest with some | |
| # test that may have a worker that cannot properly shutdown, but it does not occur on | |
| # other versions, platforms, etc. See https://github.com/temporalio/sdk-python/issues/834. | |
| - os: macos-intel | |
| python: "3.13" | |
| pythonOverride: "3.13.2" | |
| - os: macos-arm | |
| runsOn: macos-latest | |
| # On 3.13.5, python3.lib is missing for the linker | |
| - os: windows-latest | |
| python: "3.13" | |
| pythonOverride: "3.13.4" | |
| runs-on: ${{ matrix.runsOn || matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: "clippy" | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: temporalio/bridge -> target | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.pythonOverride || matrix.python }} | |
| - uses: arduino/setup-protoc@v3 | |
| with: | |
| # TODO(cretz): Can upgrade proto when https://github.com/arduino/setup-protoc/issues/99 fixed | |
| version: "23.x" | |
| repo-token: ${{ secrets.GITHUB_TOKEN }} | |
| - uses: astral-sh/setup-uv@v5 | |
| - run: uv tool install poethepoet | |
| - run: uv sync --all-extras | |
| - run: poe bridge-lint | |
| if: ${{ matrix.clippyLinter }} | |
| - run: poe lint | |
| - run: poe build-develop | |
| - run: mkdir junit-xml | |
| - run: poe test ${{matrix.pytestExtraArgs}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}.xml | |
| timeout-minutes: 15 | |
| - run: poe test ${{matrix.pytestExtraArgs}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}.xml | |
| timeout-minutes: 15 | |
| - run: poe test ${{matrix.pytestExtraArgs}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}.xml | |
| timeout-minutes: 15 | |
| - run: poe test ${{matrix.pytestExtraArgs}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}.xml | |
| timeout-minutes: 15 | |
| - run: poe test ${{matrix.pytestExtraArgs}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}.xml | |
| timeout-minutes: 15 | |
| - run: poe test ${{matrix.pytestExtraArgs}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}.xml | |
| timeout-minutes: 15 | |
| - run: poe test ${{matrix.pytestExtraArgs}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}.xml | |
| timeout-minutes: 15 | |
| - run: poe test ${{matrix.pytestExtraArgs}} -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 | |
| timeout-minutes: 10 | |
| # Check cloud if proper target and not on fork | |
| - if: ${{ matrix.cloudTestTarget && (github.event.pull_request.head.repo.full_name == '' || github.event.pull_request.head.repo.full_name == 'temporalio/sdk-python') }} | |
| run: poe test ${{matrix.pytestExtraArgs}} -s -k test_cloud_client --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}--cloud.xml | |
| timeout-minutes: 10 | |
| env: | |
| TEMPORAL_CLIENT_CLOUD_API_KEY: ${{ secrets.TEMPORAL_CLIENT_CLOUD_API_KEY }} | |
| TEMPORAL_CLIENT_CLOUD_API_VERSION: 2024-05-13-00 | |
| TEMPORAL_CLIENT_CLOUD_NAMESPACE: sdk-ci.a2dd6 | |
| - 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 | |
| timeout-minutes: 10 | |
| env: | |
| OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
| - name: "Upload junit-xml artifacts" | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: junit-xml--${{github.run_id}}--${{github.run_attempt}}--${{ matrix.python }}--${{ matrix.os }} | |
| path: junit-xml | |
| retention-days: 14 | |
| test-latest-deps: | |
| timeout-minutes: 30 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: temporalio/bridge -> target | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| - uses: arduino/setup-protoc@v3 | |
| with: | |
| # TODO(cretz): Can upgrade proto when https://github.com/arduino/setup-protoc/issues/99 fixed | |
| version: "23.x" | |
| repo-token: ${{ secrets.GITHUB_TOKEN }} | |
| - uses: astral-sh/setup-uv@v5 | |
| - run: uv tool install poethepoet | |
| - run: uv lock --upgrade | |
| - run: uv sync --all-extras | |
| - run: poe lint | |
| - run: poe build-develop | |
| - run: mkdir junit-xml | |
| - run: poe test -s --junit-xml=junit-xml/latest-deps.xml | |
| timeout-minutes: 10 | |
| - name: "Upload junit-xml artifacts" | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: junit-xml--${{github.run_id}}--${{github.run_attempt}}--latest-deps--time-skipping | |
| path: junit-xml | |
| retention-days: 14 |