hey hey #275
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
push: | |
name: Tests | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
jobs: | |
fmt: | |
name: Code formatters | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Prettier | |
run: npm install -g prettier | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Run cargo fmt | |
run: cargo fmt --check | |
- name: Run Prettier | |
run: prettier --check "**/*.{md,json,prettierrc}" | |
clippy: | |
name: cargo clippy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Rust cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Run cargo clippy | |
run: cargo clippy --locked | |
tests: | |
name: cargo test | |
runs-on: ubuntu-latest | |
env: | |
RUSTFLAGS: -C instrument-coverage | |
RUST_BACKTRACE: 1 | |
LLVM_PROFILE_FILE: default_%m.profraw | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: sudo apt-get install -y zsh fish tmux | |
- name: Install coverage tools | |
run: rustup component add llvm-tools | |
- name: Rust cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Run tests | |
run: cargo test -- --nocapture | |
- name: Generate coverage report | |
run: | | |
PATH="$(rustc --print=target-libdir)/../bin:$PATH" | |
BINARIES="$(cargo test --no-run --message-format=json | jq -rj 'select(.profile.test == true) | .filenames[] | "--object " + . + " "')" | |
ARGS="-instr-profile fixit.profdata $BINARIES --object $PWD/target/debug/fixit" | |
llvm-profdata merge -sparse default_*.profraw -o fixit.profdata | |
llvm-cov report --use-color --ignore-filename-regex='/.cargo/registry' $ARGS | |
llvm-cov export -format=lcov $ARGS -sources src/{,**/}*.rs > fixit.lcov | |
- name: Upload coverage report | |
uses: coverallsapp/github-action@v2 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
audit: | |
name: Check security advisory database | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Rust cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Run cargo-audit | |
run: | | |
gh release download --repo rustsec/rustsec --pattern 'cargo-audit-x86_64-unknown-linux-musl-*.tgz' | |
tar -xvzf cargo-audit-x86_64-unknown-linux-musl-*.tgz | |
cp cargo-audit-x86_64-unknown-linux-musl-*/cargo-audit . | |
./cargo-audit audit |