name: CI
on:
workflow_dispatch:
push:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache cargo packages
env:
cache-name: cache-cargo-packages
uses: actions/cache@v4
with:
path: |
~/.cargo
target/
key: ${{runner.os}}-${{env.cache-name}}-${{hashFiles('**/Cargo.lock')}}
- name: Lint
run: cargo lint
- name: Format
run: cargo format
- name: Tests
run: cargo test --verbose
build:
needs: verify
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache cargo packages
env:
cache-name: cache-cargo-packages
uses: actions/cache@v3
with:
path: |
~/.cargo
target/
key: ${{runner.os}}-${{env.cache-name}}-${{hashFiles('**/Cargo.lock')}}
- name: Build
run: cargo build --release --verbose