name: Checks
on:
push:
branches:
- master
pull_request:
branches:
- master
permissions: {}
jobs:
prek-checks:
name: Prek Checks
permissions:
contents: read runs-on: ubuntu-latest
concurrency:
group: prek-checks-${{ github.ref }}
cancel-in-progress: false
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with:
persist-credentials: false
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 with:
components: clippy, rustfmt
- name: Install cargo tools
uses: taiki-e/install-action@0abfcd587b70a713fdaa7fb502c885e2112acb15 with:
tool: cargo-sort, cargo-machete, cargo-sort, cargo-nextest
- name: Run checks
uses: j178/prek-action@53276d8b0d10f8b6672aa85b4588c6921d0370cc with:
extra-args: '--all-files'
finalize:
name: Finalize Checks
runs-on: ubuntu-latest
concurrency:
group: finalize-${{ github.ref }}
cancel-in-progress: false
needs:
- prek-checks
if: always()
steps:
- name: Exit with appropriate code
env:
CHECKS_FAILED: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}
run: |
if [ "$CHECKS_FAILED" = "true" ]; then
echo "❌ Some checks failed or were cancelled"
exit 1
else
echo "✅ All checks passed successfully"
exit 0
fi