actions-rust

Reusable Gitea Actions for Rust projects.

actions/rust-cache

Composite action that restores Rust build caches, installs a Rust toolchain, and saves updated cargo/rustup/target caches after the job.

Usage

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: https://gitea.com/actions/checkout@v4

      - name: Setup Rust + Cache
        uses: https://git.ericxliu.me/eric/actions-rust/.gitea/actions/rust-cache@main
        with:
          toolchain: stable      # optional, defaults to stable
          cache-prefix: rust     # optional, defaults to rust
          cache-version: v2      # optional, defaults to v2

      - run: cargo build --release
      - run: cargo test

What it does

  1. Cache key — Hashes root/workspace Cargo.toml, Cargo.lock, and rust-toolchain* files without relying on hashFiles().
  2. Cache restore/save — Restores ~/.cargo/registry, ~/.cargo/git, ~/.rustup/toolchains, and target/ using Gitea's native actions/cache. The cache action saves updated paths in its post step after later build/test steps have populated them.
  3. Rust install — Runs rustup with the minimal profile to install or verify the requested toolchain.
  4. PATH setup — Appends $HOME/.cargo/bin to $GITHUB_PATH so cargo/rustc are available in subsequent steps.

Cache key format

{cache-prefix}-{cache-version}-{runner.os}-{runner.arch}-{toolchain}-{hash(manifests/toolchain files)}

Warm builds run in ~4060s vs ~3min for a cold build.

Description
Reusable Rust setup + cache action for Gitea Actions
Readme 67 KiB