Skip to content

Commit cd4a605

Browse files
committed
Separate testing from build; and add testbed testing.
1 parent 8019835 commit cd4a605

File tree

1 file changed

+76
-13
lines changed

1 file changed

+76
-13
lines changed

.github/workflows/ci.yaml

Lines changed: 76 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -90,16 +90,6 @@ jobs:
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
- uses: actions/[email protected]
@@ -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+
- uses: actions/[email protected]
133+
134+
- name: Get build artifact
135+
uses: actions/[email protected]
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+
uses: actions/[email protected]
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+
128150
- uses: actions/[email protected]
129-
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+
- uses: actions/[email protected]
175+
176+
- name: Get build artifact
177+
uses: actions/[email protected]
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+
uses: actions/[email protected]
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

Comments
 (0)