github: Expand workflow #8
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
name: RPN Push | |
on: | |
push: | |
branches: | |
- main | |
- master | |
jobs: | |
check: | |
name: Check | |
runs-on: ubuntu-latest | |
steps: | |
- run: sudo apt-get install -y libjpeg-dev libpng-dev libpango1.0-dev libxft-dev | |
- uses: actions/checkout@v4 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
args: --locked | |
test: | |
name: Test Suite | |
runs-on: ubuntu-latest | |
steps: | |
- run: sudo apt-get install -y libjpeg-dev libpng-dev libpango1.0-dev libxft-dev libxinerama-dev libxcursor-dev libxfixes-dev | |
- uses: actions/checkout@v4 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- run: rustup component add rustfmt | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --all -- --check | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- run: sudo apt-get install -y libjpeg-dev libpng-dev libpango1.0-dev libxft-dev | |
- uses: actions/checkout@v4 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- uses: actions-rs/clippy-check@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
args: --locked -- -D warnings | |
coverage: | |
name: Coverage | |
runs-on: ubuntu-latest | |
steps: | |
- run: sudo apt-get install -y libjpeg-dev libpng-dev libpango1.0-dev libxft-dev libxinerama-dev libxcursor-dev libxfixes-dev | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
- name: Install `cargo-llvm-cov` | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Measure code coverage for all tests | |
run: | | |
# Fail if any tests fail | |
set -e | |
set -o pipefail | |
cargo llvm-cov --all-features --codecov --output-path codecov.json | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: codecov.json | |
fail_ci_if_error: true |