name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions: {}
jobs:
ci:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 with:
persist-credentials: false
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d - run: rustup component add clippy rustfmt
- uses: taiki-e/install-action@c030abdc26abd91eb618a6c9d1963825f7ce5a90 - run: mise run render
- name: assert render produces no diff
run: |
if [ -n "$(git status --porcelain)" ]; then
echo "::error::'mise run render' produced changes. Run it locally and commit."
git status
git diff HEAD
exit 1
fi
- run: mise run lint
- run: mise x -- cargo test
- run: cargo audit
coverage:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 with:
persist-credentials: false
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d - run: rustup component add llvm-tools-preview
- uses: taiki-e/install-action@4c7e9f3bb4ca35f54341be8fc8d3608f71e4d24e - run: mise x -- cargo llvm-cov --codecov --output-path codecov.json
- uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f with:
files: codecov.json