From 5d0b62c40ee217b26765b1ddd2575e4b9ae847a6 Mon Sep 17 00:00:00 2001 From: gmcky <80690640+gmcky@users.noreply.github.com> Date: Wed, 5 Aug 2026 18:29:45 +0300 Subject: [PATCH 1/3] fix: sync Cargo.lock to 0.1.7 --locked builds (flatpak, release) abort: Cargo.toml is 0.1.7 but the lock still pins moon-translator 0.1.6. --- src-tauri/Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 1a4206e..db5dd27 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -2454,7 +2454,7 @@ dependencies = [ [[package]] name = "moon-translator" -version = "0.1.6" +version = "0.1.7" dependencies = [ "log", "rdev", From 3d0a66d8a2c636dff834c80f4628e20181f6c199 Mon Sep 17 00:00:00 2001 From: gmcky <80690640+gmcky@users.noreply.github.com> Date: Wed, 5 Aug 2026 13:48:02 +0300 Subject: [PATCH 2/3] ci: inject release version into manifests on build --- .github/workflows/release.yml | 14 ++++++++++++++ scripts/set-version.mjs | 28 ++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 scripts/set-version.mjs diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cd5543f..ee8869d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -57,6 +57,9 @@ jobs: - name: Install frontend dependencies run: pnpm install + - name: Sync version to release tag + run: node scripts/set-version.mjs "${{ github.event.inputs.version }}" + - name: Build Tauri App run: pnpm tauri build --bundles deb rpm appimage env: @@ -108,6 +111,14 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + + - name: Sync version to release tag + run: node scripts/set-version.mjs "${{ github.event.inputs.version }}" + - name: Install flatpak tooling run: | sudo apt-get update @@ -189,6 +200,9 @@ jobs: - name: Install frontend dependencies run: pnpm install + - name: Sync version to release tag + run: node scripts/set-version.mjs "${{ github.event.inputs.version }}" + - name: Build Tauri App run: pnpm tauri build env: diff --git a/scripts/set-version.mjs b/scripts/set-version.mjs new file mode 100644 index 0000000..4d82983 --- /dev/null +++ b/scripts/set-version.mjs @@ -0,0 +1,28 @@ +// Sets the app version across every manifest from a single argument so the +// release tag can't drift from the built binary. Usage: node scripts/set-version.mjs v0.1.6 +import { readFileSync, writeFileSync } from "node:fs"; + +const raw = process.argv[2] ?? ""; +const version = raw.replace(/^v/, ""); + +if (!/^\d+\.\d+\.\d+(-[0-9A-Za-z.-]+)?$/.test(version)) { + console.error(`set-version: invalid version "${raw}" (expected e.g. v0.1.6)`); + process.exit(1); +} + +const edits = [ + ["package.json", /"version": "[^"]*"/, `"version": "${version}"`], + ["src-tauri/tauri.conf.json", /"version": "[^"]*"/, `"version": "${version}"`], + ["src-tauri/Cargo.toml", /^version = "[^"]*"/m, `version = "${version}"`], + ["src-tauri/Cargo.lock", /(name = "moon-translator"\r?\nversion = ")[^"]*/, `$1${version}`], +]; + +for (const [file, pattern, replacement] of edits) { + const text = readFileSync(file, "utf8"); + if (!pattern.test(text)) { + console.error(`set-version: version pattern not found in ${file}`); + process.exit(1); + } + writeFileSync(file, text.replace(pattern, replacement)); + console.log(`set ${file} -> ${version}`); +} From 72d7252b82edf404a3de01a67e701b3ee5e17482 Mon Sep 17 00:00:00 2001 From: gmcky <80690640+gmcky@users.noreply.github.com> Date: Wed, 5 Aug 2026 14:58:09 +0300 Subject: [PATCH 3/3] ci: skip Discord notify when webhook secret unset --- .github/workflows/release.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ee8869d..0c8a17a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -173,6 +173,8 @@ jobs: - build-flatpak permissions: contents: write + env: + DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} steps: - name: Checkout repository @@ -273,6 +275,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Notify Discord + if: ${{ env.DISCORD_WEBHOOK_URL != '' }} shell: pwsh run: | $version = "${{ github.event.inputs.version }}" @@ -294,4 +297,4 @@ jobs: ) } | ConvertTo-Json -Depth 5 - Invoke-RestMethod -Uri "${{ secrets.DISCORD_WEBHOOK_URL }}" -Method Post -ContentType "application/json" -Body $payload + Invoke-RestMethod -Uri $env:DISCORD_WEBHOOK_URL -Method Post -ContentType "application/json" -Body $payload