name: Rust
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v6
- name: Install toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1.16.0
- name: Check format
run: cargo fmt --check
- name: Build
run: cargo build --verbose --all-targets
- name: Run tests
run: cargo test --verbose
coverage:
name: Coverage
runs-on: ubuntu-22.04
container:
image: xd009642/tarpaulin:0.35.2-slim
options: --security-opt seccomp=unconfined
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1.16.0
- name: Generate code coverage
run: |
cargo tarpaulin --engine llvm --verbose --timeout 120 --fail-under 85 --out Lcov -- --test-threads 1
- name: upload to Coveralls
uses: coverallsapp/github-action@v2.3.7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: './lcov.info'
clippy:
name: Lint 📎
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1.16.0
- name: Run clippy
uses: actions-rs-plus/clippy-check@v2.4.2
with:
args: --all-features