Files
rust-hello-world/.gitea/workflows/rust-cache-test.yml
Hermes cef080bc64
All checks were successful
Rust Build Cache Test / build (push) Successful in 3m40s
fix: install rust via rustup in workflow
2026-05-02 14:00:57 -07:00

71 lines
1.9 KiB
YAML

name: Rust Build Cache Test
on:
push:
branches:
- main
- master
pull_request:
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: https://gitea.com/actions/checkout@v4
- name: Install Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable
source "$HOME/.cargo/env"
- name: Get Cargo lock hash
id: hash
run: |
source "$HOME/.cargo/env"
echo "hash=$(cat Cargo.lock Cargo.toml | sha256sum | cut -d' ' -f1)" >> $GITHUB_OUTPUT
- name: Cache cargo
uses: https://gitea.com/actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: rust-${{ runner.os }}-${{ steps.hash.outputs.hash }}
restore-keys: |
rust-${{ runner.os }}-
- name: Show cache info (before build)
run: |
source "$HOME/.cargo/env"
echo "=== Cache Key ==="
echo "rust-${{ runner.os }}-${{ steps.hash.outputs.hash }}"
echo ""
echo "=== Cargo cache directories (before build) ==="
du -sh ~/.cargo/registry ~/.cargo/git target 2>/dev/null || echo "Dirs not yet present"
echo ""
echo "=== Cargo/Rust versions ==="
cargo --version
rustc --version
- name: Build
run: |
source "$HOME/.cargo/env"
cargo build --verbose
- name: Run
run: |
source "$HOME/.cargo/env"
cargo run
- name: Check cache after build
run: |
echo "=== After build ==="
echo "~/.cargo/registry: $(du -sh ~/.cargo/registry 2>/dev/null | cut -f1)"
echo "~/.cargo/git: $(du -sh ~/.cargo/git 2>/dev/null | cut -f1)"
echo "target: $(du -sh target 2>/dev/null | cut -f1)"