diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index eb6b277..44ad576 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -17,6 +17,7 @@ jobs: path: | ~/.cargo/registry ~/.cargo/bin + ~/.rustup target key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }} restore-keys: | @@ -24,13 +25,20 @@ jobs: - name: Install Rust toolchain run: | - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable --profile minimal --component clippy --component rustfmt + if [ ! -x "$HOME/.cargo/bin/rustc" ]; then + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable --profile minimal --component clippy --component rustfmt + fi echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" + - name: Install cargo-binstall + run: | + command -v cargo-binstall >/dev/null 2>&1 || \ + curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash + - name: Install cargo-make and cargo-audit run: | for crate in cargo-make cargo-audit; do - command -v "$crate" >/dev/null 2>&1 || cargo install "$crate" + command -v "$crate" >/dev/null 2>&1 || cargo binstall -y "$crate" done - name: Run CI checks