Skip to content

Commit ac3a7c9

Browse files
committed
ci: build acceptance installers without draft release privileges
1 parent 16ce0ff commit ac3a7c9

1 file changed

Lines changed: 42 additions & 2 deletions

File tree

.github/workflows/installer-acceptance.yml

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,43 @@ on:
1313
permissions:
1414
contents: read
1515
jobs:
16+
build:
17+
runs-on: windows-latest
18+
timeout-minutes: 45
19+
steps:
20+
- uses: actions/checkout@v4
21+
- uses: actions/setup-python@v5
22+
with:
23+
python-version: '3.13'
24+
- uses: actions/setup-node@v4
25+
with:
26+
node-version: '22'
27+
- name: Build frozen engine
28+
shell: pwsh
29+
run: |
30+
python -m pip install . pyinstaller
31+
if ($LASTEXITCODE -ne 0) { throw 'Python installation failed' }
32+
python -m PyInstaller --noconfirm packaging/formslang-engine.spec
33+
if ($LASTEXITCODE -ne 0) { throw 'Engine build failed' }
34+
New-Item -ItemType Directory -Force desktop/src-tauri/binaries | Out-Null
35+
Copy-Item dist/formslang-engine.exe desktop/src-tauri/binaries/formslang-engine-x86_64-pc-windows-msvc.exe
36+
- name: Build Windows installers
37+
shell: pwsh
38+
run: |
39+
npm --prefix desktop ci
40+
if ($LASTEXITCODE -ne 0) { throw 'Desktop dependencies failed' }
41+
$env:CI='true'
42+
npm --prefix desktop run tauri -- build
43+
if ($LASTEXITCODE -ne 0) { throw 'Installer build failed' }
44+
- uses: actions/upload-artifact@v4
45+
with:
46+
name: candidate-installers
47+
path: |
48+
desktop/src-tauri/target/release/bundle/nsis/*.exe
49+
desktop/src-tauri/target/release/bundle/msi/*.msi
50+
retention-days: 7
1651
upgrade:
52+
needs: build
1753
runs-on: windows-latest
1854
timeout-minutes: 20
1955
strategy:
@@ -29,14 +65,18 @@ jobs:
2965
- uses: actions/setup-python@v5
3066
with:
3167
python-version: '3.13'
68+
- uses: actions/download-artifact@v4
69+
with:
70+
name: candidate-installers
71+
path: installer-assets/built
3272
- name: Download exact release installers
3373
shell: pwsh
3474
run: |
3575
if ($env:BASELINE -notmatch '^\d+\.\d+\.\d+$' -or $env:CANDIDATE -notmatch '^\d+\.\d+\.\d+$') { throw 'Invalid version' }
3676
gh release download "v$env:BASELINE" --dir installer-assets/baseline --pattern '*.exe' --pattern '*.msi'
3777
if ($LASTEXITCODE -ne 0) { throw 'Baseline download failed' }
38-
gh release download "v$env:CANDIDATE" --dir installer-assets/candidate --pattern '*.exe' --pattern '*.msi'
39-
if ($LASTEXITCODE -ne 0) { throw 'Candidate download failed' }
78+
New-Item -ItemType Directory -Force installer-assets/candidate | Out-Null
79+
Get-ChildItem installer-assets/built -Recurse -File | Copy-Item -Destination installer-assets/candidate
4080
- name: Install, save review, upgrade, verify
4181
shell: pwsh
4282
run: ./examples/verify/installer_upgrade.ps1 -Kind '${{ matrix.kind }}' -BaselineVersion $env:BASELINE -CandidateVersion $env:CANDIDATE

0 commit comments

Comments
 (0)