diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index ebee0c2..cbe04d0 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -14,6 +14,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + # The same tool cache as in release.yaml: the same key and the same folders, or + # neither job can use what the other saved. - name: Restore tool cache uses: actions/cache@v4 with: @@ -24,7 +26,10 @@ jobs: ~/.rustup ~/.local/bin/mise ~/.local/share/mise - key: tools-check-${{ hashFiles('scripts/ci-setup.sh', 'mise.toml') }} + key: tools-${{ hashFiles('scripts/ci-setup.sh', 'mise.toml') }} + # After a change to mise.toml, start from the last tools; mise installs only what changed. + restore-keys: | + tools- - name: Restore build cache uses: actions/cache@v4 with: diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index a935d7d..e30b4e9 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -24,10 +24,11 @@ jobs: CARGO_BUILD_JOBS: "2" steps: - uses: actions/checkout@v4 + # The same tool cache as in ci.yaml: the same key and the same folders, or + # neither job can use what the other saved. - name: Restore tool cache uses: actions/cache@v4 with: - # ~/.cache/cargo-xwin holds the Windows SDK files cargo-xwin downloads. path: | ~/.cargo/bin ~/.cargo/registry @@ -35,8 +36,22 @@ jobs: ~/.rustup ~/.local/bin/mise ~/.local/share/mise + key: tools-${{ hashFiles('scripts/ci-setup.sh', 'mise.toml') }} + # After a change to mise.toml, start from the last tools; mise installs only what changed. + restore-keys: | + tools- + # cargo-xwin, which takes minutes to compile, and the Windows SDK files it downloads. + # The Windows Rust target is left out: rustup lists its installed parts in a file in + # the tool cache, and refuses to install the target over files that list does not name. + - name: Restore cargo-xwin cache + uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/cargo-xwin ~/.cache/cargo-xwin - key: tools-release-${{ hashFiles('scripts/ci-setup.sh', 'mise.toml') }} + key: cargo-xwin-${{ hashFiles('scripts/ci-setup.sh', 'mise.toml') }} + restore-keys: | + cargo-xwin- - name: Restore build cache uses: actions/cache@v4 with: