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