name: RustTest
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
rust: [stable, nightly]
steps:
- uses: actions/checkout@v3
- uses: hecrj/setup-rust-action@master
with:
rust-version: ${{ matrix.rust }}
- name: Build
run: cargo build --verbose
- name: Run tests stable
if: matrix.rust == 'stable'
run: cargo test --verbose
- name: Install cargo-llvm-cov
if: matrix.rust == 'nightly'
uses: taiki-e/install-action@cargo-llvm-cov
- name: Generate code coverage for nightly
if: matrix.rust == 'nightly'
run: |
cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info
cat lcov.info
- name: Coveralls
if: matrix.rust == 'nightly'
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: "lcov.info"
multiple_targets:
runs-on: ubuntu-latest
strategy:
matrix:
target: [wasm32-unknown-unknown, x86_64-unknown-linux-gnu, x86_64-unknown-linux-musl]
steps:
- uses: actions/checkout@v3
- uses: hecrj/setup-rust-action@master
with:
rust-version: stable
targets: ${{ matrix.target }}
- name: Build
run: cargo build --target=${{ matrix.target }}
bench:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v3
- uses: hecrj/setup-rust-action@master
with:
rust-version: nightly
- name: benchmark
run: cargo bench | tee output.txt
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
tool: 'cargo'
output-file-path: output.txt
github-token: ${{ secrets.GITHUB_TOKEN }}
alert-threshold: '200%'
comment-on-alert: true
fail-on-alert: true