90
90
fail-fast : false
91
91
matrix :
92
92
target : ['macOS', 'iOS', 'tvOS', 'watchOS', 'visionOS']
93
- include :
94
- - briefcase-run-args :
95
- - run-tests : false
96
-
97
- - target : macOS
98
- run-tests : true
99
-
100
- - target : iOS
101
- briefcase-run-args : ' -d "iPhone SE (3rd generation)"'
102
- run-tests : true
103
93
104
94
steps :
105
95
@@ -125,20 +115,93 @@ jobs:
125
115
name : Python-${{ needs.config.outputs.PYTHON_VER }}-${{ matrix.target }}-support.${{ needs.config.outputs.BUILD_NUMBER }}.tar.gz
126
116
path : dist/Python-${{ needs.config.outputs.PYTHON_VER }}-${{ matrix.target }}-support.${{ needs.config.outputs.BUILD_NUMBER }}.tar.gz
127
117
118
+ briefcase-testbed :
119
+ runs-on : macOS-latest
120
+ needs : [ config, build ]
121
+ strategy :
122
+ fail-fast : false
123
+ matrix :
124
+ target : ["macOS", "iOS"]
125
+ include :
126
+ - briefcase-run-args :
127
+
128
+ - target : iOS
129
+ briefcase-run-args : ' -d "iPhone SE (3rd generation)"'
130
+
131
+ steps :
132
+
133
+
134
+ - name : Get build artifact
135
+
136
+ with :
137
+ pattern : Python-${{ needs.config.outputs.PYTHON_VER }}-${{ matrix.target }}-support.${{ needs.config.outputs.BUILD_NUMBER }}.tar.gz
138
+ path : dist
139
+
140
+ - name : Set up Python
141
+
142
+ with :
143
+ # Appending -dev ensures that we can always build the dev release.
144
+ # It's a no-op for versions that have been published.
145
+ python-version : ${{ needs.config.outputs.PYTHON_VER }}-dev
146
+ # Ensure that we *always* use the latest build, not a cached version.
147
+ # It's an edge case, but when a new alpha is released, we need to use it ASAP.
148
+ check-latest : true
149
+
128
150
129
- if : matrix.run-tests
130
151
with :
131
152
repository : beeware/Python-support-testbed
132
153
path : Python-support-testbed
133
154
134
155
- name : Install dependencies
135
- if : matrix.run-tests
136
156
run : |
137
157
# Use the development version of Briefcase
138
158
python -m pip install git+https://github.com/beeware/briefcase.git
139
159
140
160
- name : Run support testbed check
141
- if : matrix.run-tests
142
161
timeout-minutes : 10
143
162
working-directory : Python-support-testbed
144
163
run : briefcase run ${{ matrix.target }} Xcode --test ${{ matrix.briefcase-run-args }} -C support_package=\'../dist/Python-${{ needs.config.outputs.PYTHON_VER }}-${{ matrix.target }}-support.${{ needs.config.outputs.BUILD_NUMBER }}.tar.gz\'
164
+
165
+ cpython-testbed :
166
+ runs-on : macOS-latest
167
+ needs : [ config, build ]
168
+ strategy :
169
+ fail-fast : false
170
+ matrix :
171
+ target : ["iOS", "visionOS"]
172
+
173
+ steps :
174
+
175
+
176
+ - name : Get build artifact
177
+
178
+ with :
179
+ pattern : Python-${{ needs.config.outputs.PYTHON_VER }}-${{ matrix.target }}-support.${{ needs.config.outputs.BUILD_NUMBER }}.tar.gz
180
+ path : dist
181
+
182
+ - name : Set up Python
183
+
184
+ with :
185
+ # Appending -dev ensures that we can always build the dev release.
186
+ # It's a no-op for versions that have been published.
187
+ python-version : ${{ needs.config.outputs.PYTHON_VER }}-dev
188
+ # Ensure that we *always* use the latest build, not a cached version.
189
+ # It's an edge case, but when a new alpha is released, we need to use it ASAP.
190
+ check-latest : true
191
+
192
+ - name : Unpack support package
193
+ run : |
194
+ mkdir support
195
+ cd support
196
+ tar zxvf dist/Python-${{ needs.config.outputs.PYTHON_VER }}-${{ matrix.target }}-support.${{ needs.config.outputs.BUILD_NUMBER }}.tar.gz
197
+
198
+ - name : Run CPython testbed
199
+ timeout-minutes : 10
200
+ working-directory : support
201
+ run : |
202
+ # Run a representative subset of CPython core tests
203
+ # test_builtins as a test of core language pieces
204
+ # test_os as a test of system library calls
205
+ # test_bz2 as a simple test of third party libraries
206
+ # test_ctypes as a test of FFI
207
+ python -m testbed run -- test --rerun -W test_builtins test_os test_bz2 test_ctypes
0 commit comments