All workflows where it's remotely useful now trigger on a pull_request event when the workflow file itself is changed. This gives us basic sanity testing of changes to workflow files itself and reduces the need for manual tests in forks.
45 lines
1.4 KiB
YAML
45 lines
1.4 KiB
YAML
name: Check that files are formatted
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- .github/workflows/check-format.yml
|
|
pull_request_target:
|
|
types: [opened, synchronize, reopened, edited]
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
get-merge-commit:
|
|
uses: ./.github/workflows/get-merge-commit.yml
|
|
|
|
nixos:
|
|
name: fmt-check
|
|
runs-on: ubuntu-24.04-arm
|
|
needs: get-merge-commit
|
|
if: needs.get-merge-commit.outputs.mergedSha
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
with:
|
|
ref: ${{ needs.get-merge-commit.outputs.mergedSha }}
|
|
|
|
- uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
|
|
with:
|
|
extra_nix_config: sandbox = true
|
|
|
|
- name: Check that files are formatted
|
|
run: |
|
|
# Note that it's fine to run this on untrusted code because:
|
|
# - There's no secrets accessible here
|
|
# - The build is sandboxed
|
|
if ! nix-build ci -A fmt.check; then
|
|
echo "Some files are not properly formatted"
|
|
echo "Please format them by going to the Nixpkgs root directory and running one of:"
|
|
echo " nix-shell --run treefmt"
|
|
echo " nix develop --command treefmt"
|
|
echo " nix fmt"
|
|
echo "Make sure your branch is up to date with master; rebase if not."
|
|
echo "If you're having trouble, please ping @NixOS/nix-formatting"
|
|
exit 1
|
|
fi
|