@@ -3,12 +3,41 @@ name: CI - Lint and Type Check
33on :
44 push :
55 branches :
6- - " ** "
6+ - main
77 pull_request :
88 branches :
99 - " **"
1010
1111jobs :
12+ workflow-lint :
13+ name : Workflow lint (actionlint)
14+ runs-on : ubuntu-latest
15+
16+ steps :
17+ - name : Checkout repository
18+ uses : actions/checkout@v6
19+
20+ - name : Lint GitHub workflow files
21+ uses : rhysd/actionlint@v1.7.8
22+
23+ dependency-audit :
24+ name : Dependency audit (uv audit)
25+ runs-on : ubuntu-latest
26+
27+ steps :
28+ - name : Checkout repository
29+ uses : actions/checkout@v6
30+
31+ - name : Set up uv
32+ uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57
33+ with :
34+ python-version : " 3.12"
35+ enable-cache : true
36+
37+ - name : Audit dependencies for vulnerabilities
38+ run : |
39+ uv audit
40+
1241 lint :
1342 name : Lint
1443 runs-on : ubuntu-latest
2049 - name : Set up uv
2150 uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57
2251 with :
23- python-version : " 3.14 "
52+ python-version : " 3.12 "
2453 enable-cache : true
2554
2655 - name : Sync dependencies
4675 - name : Set up uv
4776 uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57
4877 with :
49- python-version : " 3.14 "
78+ python-version : " 3.12 "
5079 enable-cache : true
5180
5281 - name : Sync dependencies
6695 include :
6796 - os : ubuntu-latest
6897 - os : windows-latest
69- # Apple Silicon (arm64); see https://github.com/actions/runner-images
70- - os : macos-14
98+ - os : macos-latest
7199
72100 steps :
73101 - name : Checkout repository
76104 - name : Set up uv
77105 uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57
78106 with :
79- python-version : " 3.14 "
107+ python-version : " 3.12 "
80108 enable-cache : true
81109
82110 - name : Sync dependencies
@@ -99,3 +127,36 @@ jobs:
99127 QT_QPA_PLATFORM : offscreen
100128 run : |
101129 uv run pytest --cov-fail-under=48
130+
131+ package-briefcase-zip :
132+ name : Package Briefcase ZIP (Windows)
133+ runs-on : windows-latest
134+
135+ steps :
136+ - name : Checkout repository
137+ uses : actions/checkout@v6
138+
139+ - name : Set up uv
140+ uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57
141+ with :
142+ python-version : " 3.12"
143+ enable-cache : true
144+
145+ - name : Sync dependencies (incl. build / Briefcase)
146+ run : |
147+ uv sync --locked --dev --group build
148+
149+ - name : Briefcase create / build / package (zip)
150+ env :
151+ QT_QPA_PLATFORM : offscreen
152+ run : |
153+ uv run briefcase create windows app
154+ uv run briefcase build windows app
155+ uv run briefcase package windows -p zip
156+
157+ - name : Upload Briefcase ZIP artifact
158+ uses : actions/upload-artifact@v4
159+ with :
160+ name : briefcase-windows-zip-${{ github.sha }}
161+ path : dist/
162+ if-no-files-found : warn
0 commit comments