fix(windows): use NSIS installer instead of WiX MSI on CI
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
8
.github/scripts/prepare-template.mjs
vendored
8
.github/scripts/prepare-template.mjs
vendored
@@ -42,10 +42,16 @@ if (!fs.existsSync(indexPath)) {
|
|||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function toSafeBinaryName(name, fallback) {
|
||||||
|
const ascii = name.replace(/[^a-zA-Z0-9_-]+/g, "");
|
||||||
|
return (ascii || fallback).slice(0, 64);
|
||||||
|
}
|
||||||
|
|
||||||
function patchTauriConfig(filePath) {
|
function patchTauriConfig(filePath) {
|
||||||
const conf = JSON.parse(fs.readFileSync(filePath, "utf8"));
|
const conf = JSON.parse(fs.readFileSync(filePath, "utf8"));
|
||||||
|
const safeBinaryName = toSafeBinaryName(appName, `App${jobId}`);
|
||||||
conf.productName = appName;
|
conf.productName = appName;
|
||||||
conf.mainBinaryName = appName.replace(/[^\w.-]+/g, "") || "Web2App";
|
conf.mainBinaryName = safeBinaryName;
|
||||||
conf.identifier = appIdentifier;
|
conf.identifier = appIdentifier;
|
||||||
conf.version = "1.0.0";
|
conf.version = "1.0.0";
|
||||||
if (conf.app?.windows?.[0]) {
|
if (conf.app?.windows?.[0]) {
|
||||||
|
|||||||
11
.github/workflows/build-app.yml
vendored
11
.github/workflows/build-app.yml
vendored
@@ -50,14 +50,21 @@ jobs:
|
|||||||
|
|
||||||
- name: Build Windows app
|
- name: Build Windows app
|
||||||
working-directory: template
|
working-directory: template
|
||||||
run: npm run tauri build
|
run: npm run tauri build -- --bundles nsis
|
||||||
|
|
||||||
- name: Collect Windows artifacts
|
- name: Collect Windows artifacts
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
New-Item -ItemType Directory -Force -Path artifacts/windows | Out-Null
|
New-Item -ItemType Directory -Force -Path artifacts/windows | Out-Null
|
||||||
Get-ChildItem -Path "template/src-tauri/target/release/bundle" -Recurse -Include *.exe,*.msi |
|
$bundleRoot = "template/src-tauri/target/release/bundle"
|
||||||
|
if (Test-Path $bundleRoot) {
|
||||||
|
Get-ChildItem -Path $bundleRoot -Recurse -Include *setup.exe,*.exe,*.msi -ErrorAction SilentlyContinue |
|
||||||
|
Copy-Item -Destination artifacts/windows -Force
|
||||||
|
}
|
||||||
|
Get-ChildItem -Path "template/src-tauri/target/release" -Filter "*.exe" -ErrorAction SilentlyContinue |
|
||||||
|
Where-Object { $_.Name -notmatch "wix|candle|light" } |
|
||||||
Copy-Item -Destination artifacts/windows -Force
|
Copy-Item -Destination artifacts/windows -Force
|
||||||
|
Get-ChildItem artifacts/windows
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
},
|
},
|
||||||
"bundle": {
|
"bundle": {
|
||||||
"active": true,
|
"active": true,
|
||||||
"targets": "all",
|
"targets": ["nsis"],
|
||||||
"icon": [
|
"icon": [
|
||||||
"icons/32x32.png",
|
"icons/32x32.png",
|
||||||
"icons/128x128.png",
|
"icons/128x128.png",
|
||||||
|
|||||||
Reference in New Issue
Block a user