From d85427156e1647afde69a71fc2629d7cc539f5b6 Mon Sep 17 00:00:00 2001 From: randogoth Date: Wed, 7 Oct 2026 19:47:41 +0300 Subject: [PATCH] feat: add a Linux CI job alongside macOS, in one shared workflow Renamed macos.yml to ci.yml with two jobs (macos, linux) under one push/PR/dispatch trigger, so both run from the same commit instead of needing separate files. Cache keys are now OS-prefixed (cargo-macos-/ cargo-linux-): target/ artifacts are platform-specific and would otherwise collide under a shared key. --- .forgejo/workflows/{macos.yml => ci.yml} | 35 +++++++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) rename .forgejo/workflows/{macos.yml => ci.yml} (56%) diff --git a/.forgejo/workflows/macos.yml b/.forgejo/workflows/ci.yml similarity index 56% rename from .forgejo/workflows/macos.yml rename to .forgejo/workflows/ci.yml index 96a8439..cd0dd1a 100644 --- a/.forgejo/workflows/macos.yml +++ b/.forgejo/workflows/ci.yml @@ -1,4 +1,4 @@ -name: macOS +name: CI on: push: @@ -7,7 +7,7 @@ on: workflow_dispatch: jobs: - check: + macos: runs-on: macos-arm64 steps: - uses: https://code.forgejo.org/actions/checkout@v4 @@ -21,14 +21,17 @@ jobs: repository: randogoth/fumi ref: main path: fumi + # Cache key includes the OS explicitly: target/ artifacts are + # platform-specific, so macOS and Linux must never share a cache key + # or they'd clobber each other's compiled objects. - uses: https://code.forgejo.org/actions/cache@v4 with: path: | ~/.cargo/registry carrier/target fumi/target - key: cargo-${{ hashFiles('carrier/Cargo.lock') }} - restore-keys: cargo- + key: cargo-macos-${{ hashFiles('carrier/Cargo.lock') }} + restore-keys: cargo-macos- # Forgejo auto-injects GITHUB_TOKEN (GH Actions compatibility), scoped # to this Forgejo instance. Nix auto-detects that env var and assumes # it's a github.com credential, so it sends it to api.github.com when @@ -39,3 +42,27 @@ jobs: working-directory: carrier env: GITHUB_TOKEN: "" + + linux: + runs-on: linux-x86_64 + steps: + - uses: https://code.forgejo.org/actions/checkout@v4 + with: + path: carrier + - uses: https://code.forgejo.org/actions/checkout@v4 + with: + repository: randogoth/fumi + ref: main + path: fumi + - uses: https://code.forgejo.org/actions/cache@v4 + with: + path: | + ~/.cargo/registry + carrier/target + fumi/target + key: cargo-linux-${{ hashFiles('carrier/Cargo.lock') }} + restore-keys: cargo-linux- + - run: devbox run check + working-directory: carrier + env: + GITHUB_TOKEN: ""