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: ""