diff --git a/.github/actions/setup-rust/action.yml b/.github/actions/setup-rust/action.yml index f2f5e0673..cc43e7156 100644 --- a/.github/actions/setup-rust/action.yml +++ b/.github/actions/setup-rust/action.yml @@ -3,6 +3,8 @@ description: 'Install Rust toolchain with caching and nextest' runs: using: 'composite' steps: + - run: export CARGO_INCREMENTAL=1 + shell: bash - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable - name: Install nextest diff --git a/.github/workflows/autovendor.yml b/.github/workflows/autovendor.yml index 689e2bec5..175b5a653 100644 --- a/.github/workflows/autovendor.yml +++ b/.github/workflows/autovendor.yml @@ -13,7 +13,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - - uses: dtolnay/rust-toolchain@stable + - name: Setup Rust + uses: ./.github/actions/setup-rust - name: Install vendor tool run: cargo install cargo-vendor-filterer - name: Run diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 817778f9b..da776618a 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -29,6 +29,8 @@ jobs: - uses: actions/checkout@v6 - name: Bootc Ubuntu Setup uses: ./.github/actions/bootc-ubuntu-setup + - name: Setup Rust + uses: ./.github/actions/setup-rust - name: Setup env run: | diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d4bb812a8..b2f6ba18b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,6 +37,8 @@ jobs: - uses: actions/checkout@v6 - name: Bootc Ubuntu Setup uses: ./.github/actions/bootc-ubuntu-setup + - name: Setup Rust + uses: ./.github/actions/setup-rust - name: Validate (default) run: just validate # Check for security vulnerabilities and license compliance @@ -58,6 +60,8 @@ jobs: uses: actions/checkout@v6 - name: Bootc Ubuntu Setup uses: ./.github/actions/bootc-ubuntu-setup + - name: Setup Rust + uses: ./.github/actions/setup-rust - name: Enable fsverity for / run: sudo tune2fs -O verity $(findmnt -vno SOURCE /) - name: Install utils @@ -113,6 +117,8 @@ jobs: - uses: actions/checkout@v6 - name: Bootc Ubuntu Setup uses: ./.github/actions/bootc-ubuntu-setup + - name: Setup Rust + uses: ./.github/actions/setup-rust - name: Build mdbook run: just build-mdbook # Build packages for each test OS @@ -128,6 +134,8 @@ jobs: - uses: actions/checkout@v6 - name: Bootc Ubuntu Setup uses: ./.github/actions/bootc-ubuntu-setup + - name: Setup Rust + uses: ./.github/actions/setup-rust - name: Setup env run: | @@ -167,6 +175,8 @@ jobs: uses: ./.github/actions/bootc-ubuntu-setup with: libvirt: true + - name: Setup Rust + uses: ./.github/actions/setup-rust - name: Install tmt run: pip install --user "tmt[provision-virtual]" diff --git a/.github/workflows/crates-release.yml b/.github/workflows/crates-release.yml index 558af5a9f..26fde4ce0 100644 --- a/.github/workflows/crates-release.yml +++ b/.github/workflows/crates-release.yml @@ -10,6 +10,8 @@ jobs: id-token: write # Required for OIDC token exchange steps: - uses: actions/checkout@v6 + - name: Setup Rust + uses: ./.github/actions/setup-rust - uses: rust-lang/crates-io-auth-action@v1 id: auth - run: | diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d44b06aba..95a27178d 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -21,6 +21,8 @@ jobs: - uses: actions/checkout@v6 - name: Bootc Ubuntu Setup uses: ./.github/actions/bootc-ubuntu-setup + - name: Setup Rust + uses: ./.github/actions/setup-rust - name: Build mdbook run: mkdir target && just build-mdbook-to target/docs - name: Setup Pages diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9e5089e4d..82745926d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,6 +29,9 @@ jobs: fetch-depth: 0 token: ${{ steps.app-token.outputs.token }} + - name: Setup Rust + uses: ./.github/actions/setup-rust + - name: Extract version id: extract_version run: | @@ -82,11 +85,6 @@ jobs: - name: Install vendor tool run: cargo install cargo-vendor-filterer - - name: Cache Dependencies - uses: Swatinem/rust-cache@v2 - with: - key: "release" - - name: Run cargo xtask package run: cargo xtask package diff --git a/.github/workflows/scheduled-release.yml b/.github/workflows/scheduled-release.yml index fb80f26b6..4026dfb4d 100644 --- a/.github/workflows/scheduled-release.yml +++ b/.github/workflows/scheduled-release.yml @@ -38,6 +38,9 @@ jobs: - name: Mark git checkout as safe run: git config --global --add safe.directory "$GITHUB_WORKSPACE" + - name: Setup Rust + uses: ./.github/actions/setup-rust + - name: Check if it's time for a release id: check_schedule run: | diff --git a/crates/ostree-ext/.github/workflows/rust.yml b/crates/ostree-ext/.github/workflows/rust.yml index c575b843e..a124066bc 100644 --- a/crates/ostree-ext/.github/workflows/rust.yml +++ b/crates/ostree-ext/.github/workflows/rust.yml @@ -27,10 +27,8 @@ jobs: - name: Install deps run: ./ci/installdeps.sh # xref containers/containers-image-proxy-rs - - name: Cache Dependencies - uses: Swatinem/rust-cache@v2 - with: - key: "tests" + - name: Setup Rust + uses: ./.github/actions/setup-rust - name: cargo fmt (check) run: cargo fmt -- --check -l - name: Build @@ -50,10 +48,8 @@ jobs: - uses: actions/checkout@v6 - name: Install deps run: ./ci/installdeps.sh - - name: Cache Dependencies - uses: Swatinem/rust-cache@v2 - with: - key: "build" + - name: Setup Rust + uses: ./.github/actions/setup-rust - name: Build run: cargo build --release --features=internal-testing-api - name: Upload binary @@ -79,13 +75,8 @@ jobs: echo "ACTION_MSRV_TOOLCHAIN=$msrv" >> $GITHUB_ENV - name: Remove system Rust toolchain run: dnf remove -y rust cargo - - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ env['ACTION_MSRV_TOOLCHAIN'] }} - - name: Cache Dependencies - uses: Swatinem/rust-cache@v2 - with: - key: "min" + - name: Setup Rust + uses: ./.github/actions/setup-rust - name: cargo check run: cargo check cargo-deny: