diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8cce9e4..235b994 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,15 +32,43 @@ jobs: - name: Setup Rust toolchain uses: dtolnay/rust-toolchain@stable + - name: Cache Bun dependencies + uses: actions/cache@v4 + with: + path: ~/.bun/install/cache + key: ${{ runner.os }}-bun-${{ hashFiles('bun.lock') }} + restore-keys: | + ${{ runner.os }}-bun- + + - name: Cache Rust build output + uses: actions/cache@v4 + with: + path: | + ~/.cargo/git + ~/.cargo/registry + src-tauri/target + key: ${{ runner.os }}-cargo-${{ hashFiles('src-tauri/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo- + - name: Install frontend dependencies run: bun install --frozen-lockfile - name: Run release checks - run: bun run check:release + run: | + bun run check:versions + bunx tsc --noEmit + cargo check --manifest-path src-tauri/Cargo.toml + bun run smoke:hotkey - name: Build macOS bundles - run: bun run tauri build + run: | + bun run prepare:sidecars + bun run build + bun run tauri build env: + TALKIS_STT_RELEASE: "1" + TALKIS_SKIP_BEFORE_BUILD: "1" TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} diff --git a/scripts/before-tauri-build.mjs b/scripts/before-tauri-build.mjs new file mode 100644 index 0000000..91f95df --- /dev/null +++ b/scripts/before-tauri-build.mjs @@ -0,0 +1,9 @@ +import { execFileSync } from "node:child_process"; + +if (process.env.TALKIS_SKIP_BEFORE_BUILD === "1") { + console.log("Skipping Tauri beforeBuildCommand because TALKIS_SKIP_BEFORE_BUILD=1"); + process.exit(0); +} + +execFileSync("bun", ["run", "prepare:sidecars"], { stdio: "inherit" }); +execFileSync("bun", ["run", "build"], { stdio: "inherit" }); diff --git a/scripts/build-release-macos.sh b/scripts/build-release-macos.sh index 49f0515..69f4b62 100755 --- a/scripts/build-release-macos.sh +++ b/scripts/build-release-macos.sh @@ -3,6 +3,7 @@ set -euo pipefail export MACOSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET:-11.0}" +export TALKIS_STT_RELEASE=1 if [[ -z "${TAURI_SIGNING_PRIVATE_KEY:-}" && -n "${TAURI_SIGNING_PRIVATE_KEY_PATH:-}" ]]; then if [[ ! -f "${TAURI_SIGNING_PRIVATE_KEY_PATH}" ]]; then @@ -14,6 +15,7 @@ if [[ -z "${TAURI_SIGNING_PRIVATE_KEY:-}" && -n "${TAURI_SIGNING_PRIVATE_KEY_PAT TAURI_SIGNING_PRIVATE_KEY="$(cat "${TAURI_SIGNING_PRIVATE_KEY_PATH}")" fi -TALKIS_STT_RELEASE=1 bun run prepare:sidecars -bun run tauri build +bun run prepare:sidecars +bun run build +TALKIS_SKIP_BEFORE_BUILD=1 bun run tauri build bun run postprocess:macos-release diff --git a/src-tauri/binaries/talkis-stt-aarch64-apple-darwin b/src-tauri/binaries/talkis-stt-aarch64-apple-darwin index 3ab3e02..8a07daa 100755 Binary files a/src-tauri/binaries/talkis-stt-aarch64-apple-darwin and b/src-tauri/binaries/talkis-stt-aarch64-apple-darwin differ diff --git a/src-tauri/binaries/talkis-stt-nvidia-aarch64-apple-darwin b/src-tauri/binaries/talkis-stt-nvidia-aarch64-apple-darwin index 6a342e0..b4323d4 100755 Binary files a/src-tauri/binaries/talkis-stt-nvidia-aarch64-apple-darwin and b/src-tauri/binaries/talkis-stt-nvidia-aarch64-apple-darwin differ diff --git a/src-tauri/binaries/talkis-stt-qwen-aarch64-apple-darwin b/src-tauri/binaries/talkis-stt-qwen-aarch64-apple-darwin index 19e8e26..7ce799e 100755 Binary files a/src-tauri/binaries/talkis-stt-qwen-aarch64-apple-darwin and b/src-tauri/binaries/talkis-stt-qwen-aarch64-apple-darwin differ diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index e32bc1a..41f2dbd 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -7,7 +7,7 @@ "build": { "beforeDevCommand": "bun run prepare:sidecars && bun run dev", "devUrl": "http://localhost:1420", - "beforeBuildCommand": "bun run prepare:sidecars && bun run build", + "beforeBuildCommand": "bun scripts/before-tauri-build.mjs", "frontendDist": "../dist" }, "app": {