From c4c806c9a8d89edc966ddf0d6ea11280d3987d2c Mon Sep 17 00:00:00 2001 From: lucaronin Date: Fri, 27 Feb 2026 14:24:40 +0100 Subject: [PATCH] ci: switch from self-hosted to macos-15 GitHub runners MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mac mini disk/CPU is saturated with 10+ concurrent PR builds. Temporarily switching to GitHub-hosted macos-15 runners until we have more disk space. Self-hosted was faster due to incremental Rust builds but was causing CI queue buildup and false test failures. Changes: - CI: self-hosted → macos-15 - Release build: self-hosted → macos-15 - Remove per-runner pnpm store isolation (not needed on GitHub runners) - Add Rust cache for GitHub runners (keyed by Cargo.lock) - Remove CARGO_INCREMENTAL=1 (managed via cache instead) --- .github/workflows/ci.yml | 9 +++------ .github/workflows/release.yml | 16 +++++++++++----- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 39e6d3fa..32d128f2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ on: jobs: test: name: Tests & Quality Checks - runs-on: self-hosted + runs-on: macos-15 steps: - uses: actions/checkout@v4 @@ -39,16 +39,13 @@ jobs: ~/.cargo/registry ~/.cargo/git src-tauri/target - key: ${{ runner.os }}-${{ runner.name }}-cargo-${{ hashFiles('src-tauri/Cargo.lock') }} + key: ${{ runner.os }}-cargo-${{ hashFiles('src-tauri/Cargo.lock') }} restore-keys: | - ${{ runner.os }}-${{ runner.name }}-cargo- + ${{ runner.os }}-cargo- - name: Install cargo-llvm-cov uses: taiki-e/install-action@cargo-llvm-cov - - name: Configure pnpm store (per-runner isolation) - run: pnpm config set store-dir "$HOME/.pnpm-store-${{ runner.name }}" - - name: Install dependencies run: pnpm install --frozen-lockfile diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8ceedee9..c6ed3aa3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -34,7 +34,7 @@ jobs: build: name: Build (${{ matrix.arch }}) needs: version - runs-on: self-hosted + runs-on: macos-15 strategy: fail-fast: true matrix: @@ -60,8 +60,16 @@ jobs: with: targets: ${{ matrix.target }} - # Self-hosted runner: cargo registry + target dir persist on disk between runs. - # No need for Swatinem/rust-cache — incremental builds kick in automatically. + - name: Cache Rust dependencies + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + src-tauri/target + key: ${{ runner.os }}-release-cargo-${{ hashFiles('src-tauri/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-release-cargo- - name: Install frontend dependencies run: pnpm install --frozen-lockfile @@ -76,8 +84,6 @@ jobs: env: TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: "" - # Incremental compilation — reuses previous build artifacts on self-hosted runner - CARGO_INCREMENTAL: "1" run: | pnpm tauri build --target ${{ matrix.target }}