diff --git a/.gitea/workflows/desktop-release.yml b/.gitea/workflows/desktop-release.yml index 7c5d7cf..3ab0980 100644 --- a/.gitea/workflows/desktop-release.yml +++ b/.gitea/workflows/desktop-release.yml @@ -112,6 +112,15 @@ jobs: - name: Install Node dependencies run: npm install + - name: Verify updater signing configuration + shell: bash + run: | + set -euo pipefail + ! grep -q '__FIELDLENS_UPDATER_PUBKEY__' src-tauri/tauri.conf.json + test -n "${TAURI_SIGNING_PRIVATE_KEY:-}" + env: + TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} + - name: Build signed Windows installer run: npm run bundle:windows env: @@ -169,6 +178,15 @@ jobs: - name: Install Node dependencies run: npm install + - name: Verify updater signing configuration + shell: bash + run: | + set -euo pipefail + ! grep -q '__FIELDLENS_UPDATER_PUBKEY__' src-tauri/tauri.conf.json + test -n "${TAURI_SIGNING_PRIVATE_KEY:-}" + env: + TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} + - name: Build signed Linux packages run: npm run bundle:linux env: @@ -228,7 +246,7 @@ jobs: version="$(node -p "require('./package.json').version")" windows_sig="$(cat release-assets/fieldlens-print-windows-x64-setup.exe.sig)" linux_sig="$(cat release-assets/fieldlens-print-linux-x64.AppImage.sig)" - base="https://git.arrowstack.dev/Admin/fieldlens-desktop/raw/branch/main/downloads" + base="https://fieldlens.arrowstack.dev/downloads" jq -n \ --arg version "$version" \ diff --git a/package.json b/package.json index 966e8f7..d1ca9c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fieldlens/print", - "version": "0.1.17", + "version": "0.1.18", "private": true, "type": "module", "scripts": { diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 44b3409..b04674d 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fieldlens-print" -version = "0.1.17" +version = "0.1.18" description = "FieldLens print-stream barcode capture companion" authors = ["Arrowstack"] edition = "2021" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index f816412..37981fd 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "FieldLens Print", - "version": "0.1.17", + "version": "0.1.18", "identifier": "dev.arrowstack.fieldlens.print", "build": { "beforeDevCommand": "npm run dev", @@ -53,7 +53,7 @@ "updater": { "pubkey": "__FIELDLENS_UPDATER_PUBKEY__", "endpoints": [ - "https://git.arrowstack.dev/Admin/fieldlens-desktop/raw/branch/main/downloads/latest.json" + "https://fieldlens.arrowstack.dev/downloads/latest.json" ], "windows": { "installMode": "passive" diff --git a/src/main.ts b/src/main.ts index 817bfa8..52f131b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -97,7 +97,7 @@ let config: AppConfig let jobs: Job[] = [] let status: Status = { running: false, mode: 'raw-proxy', pending: 0, jobs: 0 } let loginTimer: number | undefined -let currentVersion = '0.1.17' +let currentVersion = '0.1.18' let bundleType: BundleType | null = null let availableUpdate: Update | null = null let availableManualUpdate: ManualUpdate | null = null @@ -824,8 +824,20 @@ async function installAvailableUpdate() { } if (availableManualUpdate) { + if (wasRunning) { + state.textContent = 'Stopping capture before opening the installer…' + await invoke('stop_capture') + await refreshStatus() + } + state.textContent = 'Opening the current FieldLens Print installer…' - await openUrl(availableManualUpdate.url) + try { + await openUrl(availableManualUpdate.url) + state.textContent = 'Installer opened. Complete the update, then restart FieldLens Print.' + } catch (error) { + if (wasRunning) await ensureCaptureStarted().catch(() => undefined) + throw error + } return } @@ -886,7 +898,7 @@ function compareVersions(left: string, right: string) { async function checkManualRelease(): Promise { const response = await fetch( - 'https://git.arrowstack.dev/Admin/fieldlens-desktop/raw/branch/main/downloads/release.json', + 'https://fieldlens.arrowstack.dev/downloads/release.json', { cache: 'no-store' }, ) if (!response.ok) throw new Error(`release feed returned HTTP ${response.status}`)