name: CI
on:
pull_request:
branches: [ main ]
env:
CARGO_TERM_COLOR: always
jobs:
conventional-commits:
runs-on: ubuntu-latest
steps:
- name: Check for Conventional Commits
uses: wtfiscrq/conventional-commits-action@1.0.1
audit:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Audit Rust Dependencies
uses: actions-rust-lang/audit@v1
with:
createIssues: false
format:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install toolchain with required components
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: rustfmt
- name: Check formatting of Rust code with rustfmt
uses: actions-rust-lang/rustfmt@v1
clippy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install toolchain with required components
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: clippy
- name: Check for code lints
uses: LoliGothick/clippy-check@v0.3.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install toolchain with required components
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: llvm-tools-preview
- name: Install cargo-make
uses: baptiste0928/cargo-install@v2.1.0
with:
crate: cargo-make
- name: Run all tests
uses: ClementTsang/cargo-action@v0.0.4
with:
command: make
args: test
- name: Get code coverage of unit tests
uses: ClementTsang/cargo-action@v0.0.4
with:
command: make
args: coverage-flow
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.json
make:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install toolchain with required components
uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Install cargo-make
uses: baptiste0928/cargo-install@v2.1.0
with:
crate: cargo-make
- name: Run `ci-flow` make recipe
uses: ClementTsang/cargo-action@v0.0.4
with:
command: make
args: ci-flow