Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
215c4fed26 | ||
|
|
92e6a80472 | ||
|
|
990705fe0e | ||
|
|
4dd8a42d3a |
@@ -16,6 +16,7 @@ the frozen-backend fallback mirror it for their toolchains.
|
||||
- Tilde-separated number ranges are spoken clearly without running their endpoints together (#1821) — thanks @flutterkage2k!
|
||||
- Voice modes use themed tabs, with Synthesize and Convert pinned below their scrolling forms (#1823)
|
||||
- Fix current-user Windows installer validation and nested resource cleanup (#1873)
|
||||
- Keep generated frontend assets available while building the current-user Windows installer (#1873)
|
||||
|
||||
- Voice cloning now starts with a clear upload-or-record choice, reveals recording and reference details only when needed, and keeps sampling controls under Production Overrides (#1817)
|
||||
- The first-run welcome line uses an instruction accepted by OmniVoice and VoiceDesign engines (#1861) — thanks @psiberfunk!
|
||||
|
||||
@@ -308,8 +308,15 @@ stable per-user component identities, HKCU registry keypaths, and uninstall
|
||||
cleanup for nested resource folders. Missing or unrendered resources fail the
|
||||
build. The canonical system installer retains its per-machine authoring.
|
||||
|
||||
CI bundles both scopes with a tiny executable, an external helper, and nested
|
||||
resources using the CLI version locked in `bun.lock`. The Windows MSI authoring
|
||||
The per-user build reuses the system build's frontend output: its config clears
|
||||
`beforeBuildCommand` so a second Vite build cannot replace the hashed files
|
||||
referenced by the rendered WiX template. Keep using `tauri build` for the
|
||||
per-user stage; it still recompiles the shell with its own product configuration.
|
||||
|
||||
CI builds both scopes with a tiny executable, an external helper, and nested
|
||||
resources using the CLI version locked in `bun.lock`. Its frontend-like build
|
||||
hook rotates resource filenames, verifying the per-user build preserves the
|
||||
system build's resource snapshot. The Windows MSI authoring
|
||||
job runs after the test suite and preserves verbose WiX logs and rendered XML.
|
||||
For focused diagnosis, dispatch CI with `windows_wix_diagnostic=true`; it skips
|
||||
the other jobs and never signs, publishes, or installs the fixture bundles.
|
||||
|
||||
@@ -9,14 +9,33 @@ $lock = Get-Content "$repo/bun.lock" -Raw
|
||||
$cliMatch = [regex]::Match($lock, '"@tauri-apps/cli":\s*\["@tauri-apps/cli@([^"\s]+)"')
|
||||
if (-not $cliMatch.Success) { throw 'Cannot resolve the Tauri CLI version from bun.lock' }
|
||||
$cliPackage = '@tauri-apps/cli@' + $cliMatch.Groups[1].Value
|
||||
New-Item -ItemType Directory -Force -Path $fixture, $artifacts, "$fixture/src", "$fixture/resources/nested", "$fixture/binaries" | Out-Null
|
||||
New-Item -ItemType Directory -Force -Path $fixture, $artifacts, "$fixture/src", "$fixture/resources/nested", "$fixture/binaries", "$fixture/tauri-stub/src" | Out-Null
|
||||
@'
|
||||
[package]
|
||||
name = "wix-diagnostic"
|
||||
version = "0.0.0"
|
||||
edition = "2021"
|
||||
[dependencies]
|
||||
tauri = { path = "tauri-stub" }
|
||||
[workspace]
|
||||
'@ | Set-Content -Encoding utf8 "$fixture/Cargo.toml"
|
||||
@'
|
||||
[package]
|
||||
name = "tauri"
|
||||
version = "2.0.0"
|
||||
edition = "2021"
|
||||
[features]
|
||||
custom-protocol = []
|
||||
'@ | Set-Content -Encoding utf8 "$fixture/tauri-stub/Cargo.toml"
|
||||
'' | Set-Content -Encoding utf8 "$fixture/tauri-stub/src/lib.rs"
|
||||
@'
|
||||
from pathlib import Path
|
||||
import uuid
|
||||
root = Path(__file__).parent / "resources" / "nested"
|
||||
for previous in root.glob("asset-*.txt"):
|
||||
previous.unlink()
|
||||
(root / f"asset-{uuid.uuid4().hex}.txt").write_text("changing frontend-like resource")
|
||||
'@ | Set-Content -Encoding utf8 "$fixture/build-assets.py"
|
||||
'fn main() { println!("MSI authoring diagnostic only"); }' | Set-Content -Encoding utf8 "$fixture/src/main.rs"
|
||||
'Nested resource payload' | Set-Content -Encoding utf8 "$fixture/resources/nested/payload.txt"
|
||||
'Root resource payload' | Set-Content -Encoding utf8 "$fixture/resources/readme.txt"
|
||||
@@ -26,7 +45,7 @@ $config = @{
|
||||
productName = 'VoiceStudio MSI Diagnostic'
|
||||
version = '0.0.0'
|
||||
identifier = 'com.debpalash.voicestudio.wixdiagnostic'
|
||||
build = @{}
|
||||
build = @{ beforeBuildCommand = @{ script = 'python build-assets.py'; cwd = $fixture } }
|
||||
bundle = @{
|
||||
active = $true
|
||||
targets = @('msi')
|
||||
@@ -57,10 +76,14 @@ try {
|
||||
productName = "VoiceStudio MSI Diagnostic $scope"
|
||||
bundle = @{ windows = @{ wix = @{ template = "$scope.wxs" } } }
|
||||
}
|
||||
if ($scope -eq 'per-user') {
|
||||
$production = Get-Content "$repo/frontend/src-tauri/tauri.per-user.conf.json" -Raw | ConvertFrom-Json -AsHashtable
|
||||
if ($production.ContainsKey('build')) { $scopeConfig.build = $production.build }
|
||||
}
|
||||
$scopeConfig | ConvertTo-Json -Depth 20 | Set-Content -Encoding utf8 "$fixture/$scope.conf.json"
|
||||
$log = Join-Path $artifacts "$scope.log"
|
||||
$ErrorActionPreference = 'Continue'
|
||||
& bun x --package $cliPackage tauri bundle -vv --target $target --bundles msi --config "$scope.conf.json" *> $log
|
||||
& bun x --package $cliPackage tauri build -vv --target $target --bundles msi --config "$scope.conf.json" *> $log
|
||||
$results[$scope] = $LASTEXITCODE
|
||||
$ErrorActionPreference = 'Stop'
|
||||
Get-Content $log
|
||||
|
||||
@@ -52,6 +52,9 @@ def test_machine_and_per_user_templates_have_distinct_scopes_and_roots():
|
||||
def test_per_user_bundle_has_separate_identity_and_no_elevated_update_task():
|
||||
config = json.loads(CONFIG.read_text(encoding="utf-8"))
|
||||
assert config["productName"].endswith("(Current User)")
|
||||
# The WiX resource snapshot comes from the preceding system build.
|
||||
# Null deletes the inherited hook via Tauri's JSON Merge Patch.
|
||||
assert config["build"]["beforeBuildCommand"] is None
|
||||
wix = config["bundle"]["windows"]["wix"]
|
||||
assert wix["upgradeCode"] == "f27de3a8-a9dc-4a3d-84bb-e98f1bf82393"
|
||||
assert wix["enableElevatedUpdateTask"] is False
|
||||
|
||||
Reference in New Issue
Block a user