9090 fail-fast : false
9191 matrix :
9292 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
10393
10494 steps :
10595@@ -125,20 +115,93 @@ jobs:
125115 name : Python-${{ needs.config.outputs.PYTHON_VER }}-${{ matrix.target }}-support.${{ needs.config.outputs.BUILD_NUMBER }}.tar.gz
126116 path : dist/Python-${{ needs.config.outputs.PYTHON_VER }}-${{ matrix.target }}-support.${{ needs.config.outputs.BUILD_NUMBER }}.tar.gz
127117
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+
128150129- if : matrix.run-tests
130151 with :
131152 repository : beeware/Python-support-testbed
132153 path : Python-support-testbed
133154
134155 - name : Install dependencies
135- if : matrix.run-tests
136156 run : |
137157 # Use the development version of Briefcase
138158 python -m pip install git+https://github.com/beeware/briefcase.git
139159
140160 - name : Run support testbed check
141- if : matrix.run-tests
142161 timeout-minutes : 10
143162 working-directory : Python-support-testbed
144163 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