on: push: branches: - main - actions-* pull_request: branches: [ "main" ] name: Build jobs: check: name: Build runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install stable toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Run cargo build run: cargo build --verbose bench: name: Bench runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install nightly toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true - name: Run cargo bench run: cargo +nightly bench --verbose test: name: Test runs-on: ubuntu-latest container: image: xd009642/tarpaulin:0.22.0 options: --security-opt seccomp=unconfined steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install stable toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Run cargo test run: cargo tarpaulin --verbose --all-features --workspace --timeout 120 --out Xml - name: Codecov uses: codecov/codecov-action@v3.1.4 with: token: ${{ secrets.CODECOV_TOKEN }} verbose: true fail_ci_if_error: true lints: name: Lints runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install stable toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true components: rustfmt, clippy - name: Run cargo fmt run: cargo fmt --all -- --check - name: Run cargo clippy run: cargo clippy -- -D warnings