Skip to content

Commit

Permalink
ci: Check if all nix files are parseable
Browse files Browse the repository at this point in the history
  • Loading branch information
dasJ committed Jan 10, 2024
1 parent 519c93e commit f7a1757
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions .github/workflows/nix-parse.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: "Check whether nix files are parseable"

permissions: read-all

on:
# avoids approving first time contributors
pull_request_target:
branches-ignore:
- 'release-**'

jobs:
tests:
runs-on: ubuntu-latest
if: "github.repository_owner == 'NixOS' && !contains(github.event.pull_request.title, '[skip treewide]')"
steps:
- name: Get list of changed files from PR
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api \
repos/NixOS/nixpkgs/pulls/${{github.event.number}}/files --paginate \
| jq '.[] | select(.status != "removed" and (.filename | endswith(".nix"))) | .filename' \
> "$HOME/changed_files"
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- uses: cachix/install-nix-action@7ac1ec25491415c381d9b62f0657c7a028df52a7 # v24
- name: Parse all changed or added nix files
run: |
ret=0
while IFS= read -r file; do
out="$(nix-instantiate --parse "$file")" || { echo "$out" && ret=1; }
done < "$HOME/changed_files"
exit "$ret"

0 comments on commit f7a1757

Please sign in to comment.