name: Mutants
on:
schedule:
- cron: "0 8 * * 1" workflow_dispatch:
permissions:
contents: read
env:
CARGO_TERM_COLOR: always
jobs:
mutants:
name: cargo-mutants
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 - uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4
- name: Install cargo-mutants
run: cargo install cargo-mutants --locked --version 25.3.1
- name: Prepare report directory
run: mkdir -p target/mutants
- name: Mutation test — crypto core
run: cargo mutants --output target/mutants/crypto
- name: Mutation test — MAC & load core
run: >
cargo mutants --output target/mutants/mac
--file src/lib.rs
--re 'compute_mac|verify_mac|mac_bytes|schema_mac_bytes|decode_mac_key|generate_mac_key|signing_message|sign_vault|verify_vault_signature|check_signature|resolve_meta_state|decrypt_vault'
- name: Upload mutation reports
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a with:
name: mutants-report
path: target/mutants/