Skip to content

Bump codecov/codecov-action from 4.1.1 to 4.4.1 #353

Bump codecov/codecov-action from 4.1.1 to 4.4.1

Bump codecov/codecov-action from 4.1.1 to 4.4.1 #353

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-22.04
- name: Windows
os: windows-2022
steps:
- name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
- 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@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: just@1
- name: Install cargo-all-features
uses: taiki-e/install-action@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: cargo-all-features@1.10.0
- 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-22.04
- name: Windows
os: windows-2022
steps:
- name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
- 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@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: just@1
- name: Install cargo-all-features
uses: taiki-e/install-action@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: cargo-all-features@1.10.0
- name: Build
run: just ci-build
coverage:
name: Coverage
runs-on: ubuntu-22.04
needs:
- test
steps:
- name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
- 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@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: just@1
- name: Install cargo-tarpaulin
uses: taiki-e/install-action@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: cargo-tarpaulin@0.28.0
- name: Run all tests with coverage
run: just ci-coverage
- name: Upload coverage report
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
if: ${{ failure() || success() }}
with:
name: coverage-report
path: _reports/coverage/
retention-days: 7
- name: Upload coverage to Codecov
uses: codecov/codecov-action@125fc84a9a348dbcf27191600683ec096ec9021c # v4.4.1
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
file: ./_reports/coverage/lcov.info
docs:
name: Docs
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
- 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@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: just@1
- name: Build docs
run: just ci-docs
fmt:
name: Fmt
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
- 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@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: just@1
- name: Check formatting
run: just ci-fmt
mutation:
name: Mutation
runs-on: ubuntu-22.04
needs:
- test
steps:
- name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
- 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@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: just@1
- name: Install cargo-mutants
uses: taiki-e/install-action@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: cargo-mutants@24.3.0
- name: Run mutation tests
run: just ci-mutation
- name: Upload mutation report
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
if: ${{ failure() || success() }}
with:
name: mutation-report
path: _reports/mutants.out/
retention-days: 7
reproducible:
name: Reproducible build
runs-on: ubuntu-22.04
needs:
- build
steps:
- name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
- 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@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.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-22.04
- name: Windows
os: windows-2022
steps:
- name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
- 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@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: just@1
- name: Install cargo-all-features
uses: taiki-e/install-action@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: cargo-all-features@1.10.0
- 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-22.04
- name: Windows
os: windows-2022
steps:
- name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
- 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@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: just@1
- name: Install cargo-all-features
uses: taiki-e/install-action@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: cargo-all-features@1.10.0
- name: Run all tests
run: just ci-test
vet:
name: Vet
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
- 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@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: just@1
- name: Install cargo-all-features
uses: taiki-e/install-action@bd71f121e3951933204a4d1cf9256d934f5600a5 # v2.27.0
with:
tool: cargo-all-features@1.10.0
- name: Vet
run: just ci-vet