99jobs :
1010 # Build and test the project
1111 build-lint-test :
12+ timeout-minutes : 30
1213 strategy :
1314 fail-fast : false
1415 matrix :
1516 python : ["3.9", "3.13"]
1617 os : [ubuntu-latest, ubuntu-arm, macos-intel, macos-arm, windows-latest]
1718 include :
1819 # On 3.9 there is a problem with import errors caused by pytests' loader that surface due
19- # to a bug in CPython, so we avoid using the assert rewriter.
20+ # to a bug in CPython (https://github.com/python/cpython/issues/91351), so we avoid using
21+ # the assert rewriter.
2022 - python : " 3.9"
2123 pytestExtraArgs : " --assert=plain"
2224 - os : ubuntu-latest
3133 runsOn : ubuntu-24.04-arm64-2-core
3234 - os : macos-intel
3335 runsOn : macos-13
36+ # On 3.13.3 there is some issue with macOS intel where it hangs after pytest with some
37+ # test that may have a worker that cannot properly shutdown, but it does not occur on
38+ # other versions, platforms, etc. See https://github.com/temporalio/sdk-python/issues/834.
39+ - os : macos-intel
40+ python : " 3.13"
41+ pythonOverride : " 3.13.2"
3442 - os : macos-arm
3543 runsOn : macos-latest
3644 runs-on : ${{ matrix.runsOn || matrix.os }}
4452 workspaces : temporalio/bridge -> target
4553 - uses : actions/setup-python@v5
4654 with :
47- python-version : ${{ matrix.python }}
55+ python-version : ${{ matrix.pythonOverride || matrix. python }}
4856 - uses : arduino/setup-protoc@v3
4957 with :
5058 # TODO(cretz): Can upgrade proto when https://github.com/arduino/setup-protoc/issues/99 fixed
@@ -59,12 +67,15 @@ jobs:
5967 - run : poe build-develop
6068 - run : mkdir junit-xml
6169 - run : poe test ${{matrix.pytestExtraArgs}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}.xml
70+ timeout-minutes : 10
6271 # Time skipping doesn't yet support ARM
6372 - if : ${{ !endsWith(matrix.os, '-arm') }}
6473 run : poe test ${{matrix.pytestExtraArgs}} -s --workflow-environment time-skipping --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}--time-skipping.xml
74+ timeout-minutes : 10
6575 # Check cloud if proper target and not on fork
6676 - if : ${{ matrix.cloudTestTarget && (github.event.pull_request.head.repo.full_name == '' || github.event.pull_request.head.repo.full_name == 'temporalio/sdk-python') }}
6777 run : poe test ${{matrix.pytestExtraArgs}} -s -k test_cloud_client --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}--cloud.xml
78+ timeout-minutes : 10
6879 env :
6980 TEMPORAL_CLIENT_CLOUD_API_KEY : ${{ secrets.TEMPORAL_CLIENT_CLOUD_API_KEY }}
7081 TEMPORAL_CLIENT_CLOUD_API_VERSION : 2024-05-13-00
94105 poe format
95106 [[ -z $(git status --porcelain temporalio) ]] || (git diff temporalio; echo "Protos changed"; exit 1)
96107 poe test -s
108+ timeout-minutes : 10
97109
98110 # Do docs stuff (only on one host)
99111 - name : Build API docs
0 commit comments