From d31ec2f341a83772b04c9e05cc7560ba61d3beef Mon Sep 17 00:00:00 2001 From: Jimmy Date: Sat, 16 May 2026 14:35:31 +0800 Subject: [PATCH] Update README with two-step usage pattern (restore before build, save after) --- README.md | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fabf175..38c9680 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,13 @@ A Gitea Action that caches build files as `tar.xz` archives on the runner filesy 2. Stores archives at `~/.cache/.cache-store/.tar.xz` 3. Restores by extracting the archive to `/`, saves by creating one +## Usage + +This action must be used **twice** in your workflow: + +1. **Before build** — restores cache if it exists +2. **After build** — saves the cache archive (only on cache miss) + ## Rust Example ```yaml @@ -38,13 +45,24 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + + # 1. Restore cache before build + - uses: Actions/Cache@main + id: cache + with: + key-prefix: 'cargo-registry' + key-file: 'Cargo.lock' + path: '~/.cargo/registry' + + - name: Build + run: cargo build --release + + # 2. Save cache after build - uses: Actions/Cache@main with: key-prefix: 'cargo-registry' key-file: 'Cargo.lock' path: '~/.cargo/registry' - - name: Build - run: cargo build --release ``` ## Skip Steps on Cache Hit @@ -62,15 +80,26 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + + # 1. Restore cache - uses: Actions/Cache@main id: cache with: key-prefix: 'rust' key-file: 'Cargo.lock' path: '~/.cargo/registry' + - name: Fetch dependencies if: steps.cache.outputs.cache-hit != 'true' run: cargo fetch + - name: Build run: cargo build --release + + # 2. Save cache + - uses: Actions/Cache@main + with: + key-prefix: 'rust' + key-file: 'Cargo.lock' + path: '~/.cargo/registry' ```