9
9
jobs :
10
10
# Build and test the project
11
11
build-lint-test :
12
+ timeout-minutes : 30
12
13
strategy :
13
14
fail-fast : false
14
15
matrix :
15
16
python : ["3.9", "3.13"]
16
17
os : [ubuntu-latest, ubuntu-arm, macos-intel, macos-arm, windows-latest]
17
18
include :
18
19
# 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.
20
22
- python : " 3.9"
21
23
pytestExtraArgs : " --assert=plain"
22
24
- os : ubuntu-latest
31
33
runsOn : ubuntu-24.04-arm64-2-core
32
34
- os : macos-intel
33
35
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"
34
42
- os : macos-arm
35
43
runsOn : macos-latest
36
44
runs-on : ${{ matrix.runsOn || matrix.os }}
44
52
workspaces : temporalio/bridge -> target
45
53
- uses : actions/setup-python@v5
46
54
with :
47
- python-version : ${{ matrix.python }}
55
+ python-version : ${{ matrix.pythonOverride || matrix. python }}
48
56
- uses : arduino/setup-protoc@v3
49
57
with :
50
58
# TODO(cretz): Can upgrade proto when https://github.com/arduino/setup-protoc/issues/99 fixed
@@ -59,12 +67,15 @@ jobs:
59
67
- run : poe build-develop
60
68
- run : mkdir junit-xml
61
69
- run : poe test ${{matrix.pytestExtraArgs}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}.xml
70
+ timeout-minutes : 10
62
71
# Time skipping doesn't yet support ARM
63
72
- if : ${{ !endsWith(matrix.os, '-arm') }}
64
73
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
65
75
# Check cloud if proper target and not on fork
66
76
- if : ${{ matrix.cloudTestTarget && (github.event.pull_request.head.repo.full_name == '' || github.event.pull_request.head.repo.full_name == 'temporalio/sdk-python') }}
67
77
run : poe test ${{matrix.pytestExtraArgs}} -s -k test_cloud_client --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}--cloud.xml
78
+ timeout-minutes : 10
68
79
env :
69
80
TEMPORAL_CLIENT_CLOUD_API_KEY : ${{ secrets.TEMPORAL_CLIENT_CLOUD_API_KEY }}
70
81
TEMPORAL_CLIENT_CLOUD_API_VERSION : 2024-05-13-00
94
105
poe format
95
106
[[ -z $(git status --porcelain temporalio) ]] || (git diff temporalio; echo "Protos changed"; exit 1)
96
107
poe test -s
108
+ timeout-minutes : 10
97
109
98
110
# Do docs stuff (only on one host)
99
111
- name : Build API docs
0 commit comments