This makes the CI fail fast and more explicitly in case the formatting is incorrect and provides a better error messages. This also ensures that we don't burn CI on useless checks for code that wouldn't pass lints anyway.
25 lines
467 B
Bash
Executable File
25 lines
467 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
system=$(nix eval --raw --impure --expr builtins.currentSystem)
|
|
|
|
echo "::group::Running pre-commit checks"
|
|
|
|
if nix build ".#checks.$system.pre-commit" -L; then
|
|
echo "::endgroup::"
|
|
exit 0
|
|
fi
|
|
|
|
echo "::error ::Changes do not pass pre-commit checks"
|
|
|
|
cat <<EOF
|
|
The code isn't formatted or doesn't pass lints. You can run pre-commit locally with:
|
|
|
|
nix develop -c ./maintainers/format.sh
|
|
EOF
|
|
|
|
echo "::endgroup::"
|
|
|
|
exit 1
|