Skip to content

Bump actions/upload-artifact from 4.3.4 to 4.4.3 #413

Bump actions/upload-artifact from 4.3.4 to 4.4.3

Bump actions/upload-artifact from 4.3.4 to 4.4.3 #413

Workflow file for this run

name: Rust
on:
pull_request:
paths:
- "**.rs"
- .github/workflows/rust.yml
- Cargo.lock
- Cargo.toml
- clippy.toml
- Justfile
- rust-toolchain.toml
- rustfmt.toml
push:
branches:
- main
permissions: read-all
env:
RUST_BACKTRACE: 1
jobs:
build:
name: Build (${{ matrix.name }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: MacOS
os: macos-14
- name: Ubuntu
os: ubuntu-24.04
- name: Windows
os: windows-2022
steps:
- name: Checkout repository
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
- name: Cache Rust & Cargo
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install Rust toolchain
run: rustup show
- name: Install Just
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: just@1
- name: Install cargo-all-features
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: [email protected]
- name: Build
run: just ci-build
build-nightly:
name: Build nightly (${{ matrix.name }})
runs-on: ${{ matrix.os }}
needs:
- build
strategy:
fail-fast: false
matrix:
include:
- name: MacOS
os: macos-14
- name: Ubuntu
os: ubuntu-24.04
- name: Windows
os: windows-2022
steps:
- name: Checkout repository
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
- name: Cache Rust & Cargo
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: nightly-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install Rust toolchain
run: |
rustup install nightly
rustup override set nightly
rustup show
- name: Install Just
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: just@1
- name: Install cargo-all-features
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: [email protected]
- name: Build
run: just ci-build
coverage:
name: Coverage
runs-on: ubuntu-24.04
needs:
- test
steps:
- name: Checkout repository
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
- name: Cache Rust & Cargo
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install Rust toolchain
run: rustup show
- name: Install Just
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: just@1
- name: Install cargo-tarpaulin
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: [email protected]
- name: Run all tests with coverage
run: just ci-coverage
- name: Upload coverage report
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
if: ${{ failure() || success() }}
with:
name: coverage-report
path: _reports/coverage/
retention-days: 7
docs:
name: Docs
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
- name: Cache Rust & Cargo
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install Rust toolchain
run: rustup show
- name: Install Just
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: just@1
- name: Build docs
run: just ci-docs
fmt:
name: Fmt
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
- name: Cache Rust & Cargo
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install Rust toolchain
run: rustup show
- name: Install Just
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: just@1
- name: Check formatting
run: just ci-fmt
mutation:
name: Mutation
runs-on: ubuntu-24.04
needs:
- test
steps:
- name: Checkout repository
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
- name: Cache Rust & Cargo
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install Rust toolchain
run: rustup show
- name: Install Just
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: just@1
- name: Install cargo-mutants
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: [email protected]
- name: Run mutation tests
run: just ci-mutation
- name: Upload mutation report
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
if: ${{ failure() || success() }}
with:
name: mutation-report
path: _reports/mutants.out/
retention-days: 7
reproducible:
name: Reproducible build
runs-on: ubuntu-24.04
needs:
- build
steps:
- name: Checkout repository
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
- name: Cache Rust & Cargo
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install Rust toolchain
run: rustup show
- name: Install Just
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: just@1
- name: Build
run: just build
- name: Compute checksum
run: shasum target/release/rust-rm | tee checksums.txt
- name: Rebuild
run: just clean build
- name: Verify checksum
run: shasum --check checksums.txt --strict
test:
name: Test (${{ matrix.name }})
runs-on: ${{ matrix.os }}
needs:
- build
strategy:
fail-fast: false
matrix:
include:
- name: MacOS
os: macos-14
- name: Ubuntu
os: ubuntu-24.04
- name: Windows
os: windows-2022
steps:
- name: Checkout repository
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
- name: Cache Rust & Cargo
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install Rust toolchain
run: rustup show
- name: Install Just
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: just@1
- name: Install cargo-all-features
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: [email protected]
- name: Run all tests
run: just ci-test
test-nightly:
name: Test nightly (${{ matrix.name }})
runs-on: ${{ matrix.os }}
needs:
- build-nightly
- test
strategy:
fail-fast: false
matrix:
include:
- name: MacOS
os: macos-14
- name: Ubuntu
os: ubuntu-24.04
- name: Windows
os: windows-2022
steps:
- name: Checkout repository
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
- name: Cache Rust & Cargo
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: nightly-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install Rust toolchain
run: |
rustup install nightly
rustup override set nightly
rustup show
- name: Install Just
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: just@1
- name: Install cargo-all-features
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: [email protected]
- name: Run all tests
run: just ci-test
vet:
name: Vet
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
- name: Cache Rust & Cargo
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install Rust toolchain
run: rustup show
- name: Install Just
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: just@1
- name: Install cargo-all-features
uses: taiki-e/install-action@3e71e7135de310b70bc22dccb4d275acde8e055a # v2.42.0
with:
tool: [email protected]
- name: Vet
run: just ci-vet