diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7f45b5e..587f5b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,12 +50,12 @@ jobs: os: [windows-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable with: components: clippy, rustfmt - - uses: Swatinem/rust-cache@v2 - - uses: taiki-e/install-action@v2 + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 + - uses: taiki-e/install-action@07b4745e0c39a41822af610387492e3e53aa222b # v2 with: tool: cargo-nextest - name: Rustfmt @@ -79,7 +79,7 @@ jobs: run: cargo test --doc --workspace --all-features - name: Test summary if: always() - uses: mikepenz/action-junit-report@v5 + uses: mikepenz/action-junit-report@3585e9575db828022551b4231f165eb59a0e74e3 # v5 with: report_paths: target/nextest/ci/junit.xml annotate_only: true @@ -94,11 +94,11 @@ jobs: name: linux verify (Docker + libfprint) runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 # The image builds libfprint v1.94.10 from source; the gha cache avoids rebuilding it every # run. docker-compose.yml names `fprintd-dev`, so every `run` below picks this up. - - uses: docker/setup-buildx-action@v3 - - uses: docker/build-push-action@v6 + - uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3 + - uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6 with: context: . file: docker/Dockerfile @@ -110,7 +110,7 @@ jobs: # volume is empty each run, so sccache (167 MiB) carries the 109 third-party crate compilations # between runs. Keyed on the lockfile and the image; either moving invalidates the cache. # See docker/docker-compose.ci.yml. - - uses: actions/cache@v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: .sccache key: sccache-linux-${{ hashFiles('Cargo.lock', 'docker/Dockerfile') }} @@ -153,9 +153,9 @@ jobs: name: systemd unit (Alias takes the seat) runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - name: Verify the unit against real systemd run: cargo xtask unit-verify @@ -167,9 +167,9 @@ jobs: # the 1.82 floor is the one under test. RUSTUP_TOOLCHAIN: "1.82" steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@1.82 - - uses: Swatinem/rust-cache@v2 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: dtolnay/rust-toolchain@1b3313b849df1bb048b694ad5408de234833c4e7 # 1.82 + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 # The Linux-only crates are absent: they declare 1.85 and would fail here. Their floor is # enforced by cargo's `rust-version` and exercised by `linux`. - name: Check the pure crates on the declared MSRV @@ -181,9 +181,9 @@ jobs: name: publish-check (the registry's rules) runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 # publish-check dry-runs `cargo publish --workspace`, which builds the shim crate; its # libfprint-sys FFI links libfprint-2 and glib-2.0 through pkg-config. - name: install libfprint @@ -195,8 +195,8 @@ jobs: name: supply chain (advisories, licences, bans, sources) runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: EmbarkStudios/cargo-deny-action@v2 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: EmbarkStudios/cargo-deny-action@3c6349835b2b7b196a839186cb8b78e02f7b5f25 # v2 with: command: check @@ -204,8 +204,8 @@ jobs: name: reuse lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: fsfe/reuse-action@v5 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: fsfe/reuse-action@bb774aa972c2a89ff34781233d275075cbddf542 # v5 mutants: name: mutants (the diff) @@ -215,12 +215,12 @@ jobs: # Bounded: a large diff reports nothing rather than holding a runner. The finding is advisory. timeout-minutes: 30 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 with: fetch-depth: 0 # `git diff origin/...HEAD` needs the base branch and the merge base - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - - uses: taiki-e/install-action@v2 + - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 + - uses: taiki-e/install-action@07b4745e0c39a41822af610387492e3e53aa222b # v2 with: tool: cargo-mutants - name: Which of the changed lines the tests do not defend @@ -235,19 +235,19 @@ jobs: if: github.event_name == 'pull_request' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable with: components: llvm-tools-preview - - uses: Swatinem/rust-cache@v2 - - uses: taiki-e/install-action@v2 + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 + - uses: taiki-e/install-action@07b4745e0c39a41822af610387492e3e53aa222b # v2 with: tool: cargo-nextest,cargo-llvm-cov - name: Coverage over the published pure crates run: > cargo llvm-cov nextest --all-features --lcov --output-path lcov.info -p fprint-core -p fprint-fp3 -p fprint-bozorth3 -p fprint-mindtct -p fprint-backend-native - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: name: coverage-lcov path: lcov.info diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 3118341..102a5be 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -32,13 +32,13 @@ jobs: name: build the book and the api reference runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - - uses: taiki-e/install-action@v2 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 + - uses: taiki-e/install-action@07b4745e0c39a41822af610387492e3e53aa222b # v2 with: tool: mdbook - - uses: actions/configure-pages@v5 + - uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5 # `cargo doc --workspace` documents the two C-linking crates (fprintd, fprint-backend-libfprint), # so the distro libfprint headers and libclang must be present for libfprint-sys bindgen. - name: Refresh the package index @@ -57,7 +57,7 @@ jobs: run: cp -r docs/book _site - name: Place the API reference at /api run: cp -r target/doc _site/api - - uses: actions/upload-pages-artifact@v3 + - uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3 with: path: _site @@ -70,4 +70,4 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} steps: - id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4 diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index c95961e..105ebae 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -24,8 +24,8 @@ jobs: name: new advisories on unchanged code runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: EmbarkStudios/cargo-deny-action@v2 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: EmbarkStudios/cargo-deny-action@3c6349835b2b7b196a839186cb8b78e02f7b5f25 # v2 with: command: check advisories @@ -42,9 +42,9 @@ jobs: # the beta toolchain is used. RUSTUP_TOOLCHAIN: beta steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@beta - - uses: Swatinem/rust-cache@v2 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: dtolnay/rust-toolchain@4711ae3e97dd6376c8d5d5d51c89566406abaefa # beta + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 # `RUSTFLAGS: -D warnings` is absent, unlike ci.yml: a new lint firing on beta is not a # bit-exactness signal and must not mask one. - name: Goldens against the next toolchain