59
59
- " gtk"
60
60
- " iOS"
61
61
- " toga"
62
+ - " travertino"
62
63
- " textual"
63
64
- " web"
64
65
- " winforms"
67
68
build-subdirectory : ${{ matrix.subdir }}
68
69
attest : ${{ inputs.attest-package }}
69
70
70
- core :
71
- name : Test core
71
+ core-and-travertino :
72
+ name : Test ${{ matrix.package }} (${{ matrix.platform }}, ${{ matrix.python-version }})
72
73
runs-on : ${{ matrix.platform }}
73
74
needs : [ pre-commit, towncrier, package ]
74
75
continue-on-error : ${{ matrix.experimental }}
77
78
matrix :
78
79
platform : [ "macos-latest", "ubuntu-latest", "windows-latest" ]
79
80
python-version : [ "3.9", "3.10", "3.11", "3.12", "3.13" ]
81
+ package : ["core", "travertino"]
82
+ exclude :
83
+ - package : travertino
84
+ platform : macos-latest
85
+ - package : travertino
86
+ platform : windows-latest
80
87
include :
81
88
- experimental : false
89
+ - package : " core"
90
+ tox-suffix : " "
91
+ - package : " travertino"
92
+ tox-suffix : " -trav"
82
93
83
94
steps :
84
95
- name : Checkout
97
108
with :
98
109
requirements : tox
99
110
extra : dev
100
- project-root : core
111
+ project-root : ${{ matrix.package }}
101
112
102
113
- name : Get Packages
103
114
@@ -110,16 +121,16 @@ jobs:
110
121
run : |
111
122
# The $(ls ...) shell expansion is done in the Github environment;
112
123
# the value of TOGA_INSTALL_COMMAND will be a literal string without any shell expansions to perform
113
- TOGA_INSTALL_COMMAND="python -m pip install ../$(ls dist/toga_core-*.whl)[dev] ../$(ls dist/toga_dummy-*.whl)" \
114
- tox -e py-cov
115
- tox -qe coverage$(tr -dc "0-9" <<< "${{ matrix.python-version }}")
116
- mv core /.coverage core /.coverage.${{ matrix.platform }}.${{ matrix.python-version }}
124
+ TOGA_INSTALL_COMMAND="python -m pip install ../$(ls dist/toga_core-*.whl)[dev] ../$(ls dist/toga_dummy-*.whl) ../$(ls dist/travertino-*.whl)"
125
+ tox -e py-cov${{ matrix.tox-suffix }}
126
+ tox -qe coverage$(tr -dc "0-9" <<< "${{ matrix.python-version }}")${{ matrix.tox-suffix }}
127
+ mv ${{ matrix.package }} /.coverage ${{ matrix.package }} /.coverage.${{ matrix.platform }}.${{ matrix.python-version }}
117
128
118
129
- name : Store Coverage Data
119
130
120
131
with :
121
- name : core -coverage-data-${{ matrix.platform }}-${{ matrix.python-version }}
122
- path : " core /.coverage.*"
132
+ name : ${{ matrix.package }} -coverage-data-${{ matrix.platform }}-${{ matrix.python-version }}
133
+ path : " ${{ matrix.package }} /.coverage.*"
123
134
if-no-files-found : error
124
135
include-hidden-files : true
125
136
@@ -159,15 +170,21 @@ jobs:
159
170
with :
160
171
python-version : " 3.13"
161
172
162
- - name : Get Packages
173
+ - name : Get Core Package
163
174
164
175
with :
165
176
name : Packages-toga-core
166
177
path : dist
167
178
179
+ - name : Get Travertino Package
180
+
181
+ with :
182
+ name : Packages-toga-travertino
183
+ path : dist
184
+
168
185
- name : Test
169
186
run : |
170
- pip install dist/toga_core-*.whl
187
+ pip install dist/toga_core-*.whl dist/travertino-*.whl
171
188
site_packages=$(python -c '
172
189
import sys
173
190
print([path for path in sys.path if "site-packages" in path][0])
@@ -176,17 +193,20 @@ jobs:
176
193
cd core
177
194
export MICROPYPATH="$site_packages:.frozen"
178
195
179
- echo "Stable Travertino"
180
196
${{ steps.micropython.outputs.executable }} micropython_check.py
181
197
182
- echo "Development Travertino"
183
- pip install git+https://github.com/beeware/travertino
184
- ${{ steps.micropython.outputs.executable }} micropython_check.py
185
-
186
- core-coverage :
187
- name : Coverage
188
- needs : core
198
+ core-and-travertino-coverage :
199
+ name : " Coverage: ${{ matrix.package }}"
200
+ needs : core-and-travertino
189
201
runs-on : ubuntu-latest
202
+ strategy :
203
+ matrix :
204
+ package : ["core", "travertino"]
205
+ include :
206
+ - package : " core"
207
+ tox-suffix : " "
208
+ - package : " travertino"
209
+ tox-suffix : " -trav"
190
210
steps :
191
211
- name : Checkout
192
212
@@ -205,28 +225,29 @@ jobs:
205
225
with :
206
226
requirements : tox
207
227
extra : dev
208
- project-root : core
228
+ project-root : ${{ matrix.package }}
209
229
210
230
- name : Retrieve Coverage Data
211
231
212
232
with :
213
- pattern : core -coverage-data-*
214
- path : core
233
+ pattern : ${{ matrix.package }} -coverage-data-*
234
+ path : ${{ matrix.package }}
215
235
merge-multiple : true
216
236
217
237
- name : Generate Coverage Report
218
- run : tox -e coverage-html-fail-platform
238
+ # Even with "fail" on, Travertino will accept <100%.
239
+ run : tox -e coverage${{ matrix.tox-suffix }}-html-fail-platform
219
240
220
241
- name : Upload HTML Coverage Report
221
242
222
243
if : failure()
223
244
with :
224
245
name : html-coverage-report
225
- path : core /htmlcov
246
+ path : ${{ matrix.package }} /htmlcov
226
247
227
248
testbed :
228
249
name : Testbed
229
- needs : core
250
+ needs : core-and-travertino
230
251
runs-on : ${{ matrix.runs-on }}
231
252
strategy :
232
253
fail-fast : false
@@ -321,21 +342,21 @@ jobs:
321
342
platform : " linux"
322
343
runs-on : " ubuntu-latest"
323
344
setup-python : false # Use the system Python packages
324
- briefcase-run-args : --config 'requires=["../core","../textual"]' --config 'console_app=true'
345
+ briefcase-run-args : --config 'requires=["../core","../textual", "../travertino" ]' --config 'console_app=true'
325
346
app-user-data-path : " $HOME/.local/share/testbed"
326
347
# install the meta-package build-essential since Briefcase explicitly checks for it
327
348
pre-command : sudo apt update -y && sudo apt install -y build-essential
328
349
329
350
- backend : " textual-macOS"
330
351
platform : " macOS"
331
352
runs-on : " macos-latest"
332
- briefcase-run-args : --config 'requires=["../core","../textual"]' --config 'console_app=true'
353
+ briefcase-run-args : --config 'requires=["../core","../textual", "../travertino" ]' --config 'console_app=true'
333
354
app-user-data-path : " $HOME/Library/Application Support/org.beeware.toga.testbed"
334
355
335
356
- backend : " textual-windows"
336
357
platform : " windows"
337
358
runs-on : " windows-latest"
338
- briefcase-run-args : --config 'requires=["../core","../textual"]' --config 'console_app=true'
359
+ briefcase-run-args : --config 'requires=["../core","../textual", "../travertino" ]' --config 'console_app=true'
339
360
app-user-data-path : ' $HOME\AppData\Local\Tiberius Yak\Toga Testbed\Data'
340
361
341
362
- backend : " windows"
0 commit comments