-
Notifications
You must be signed in to change notification settings - Fork 57
66 lines (60 loc) · 1.9 KB
/
nix-checks.yaml
File metadata and controls
66 lines (60 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
name: Nix
on:
pull_request:
# Cancel an in-progress run when a newer commit supersedes it on the same
# branch (e.g. when update-vendor-hash pushes a hash fix).
concurrency:
group: nix-checks-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
list:
runs-on: ubuntu-latest
outputs:
checks: ${{ steps.checks.outputs.result }}
packages: ${{ steps.packages.outputs.result }}
steps:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@v21
- id: checks
run: |
CHECKS=$(nix eval .#checks.x86_64-linux \
--apply builtins.attrNames --json)
echo "result=$CHECKS" >> "$GITHUB_OUTPUT"
- id: packages
run: |
PACKAGES=$(nix eval .#packages.x86_64-linux \
--apply 'ps: builtins.attrNames (removeAttrs ps ["default"])' \
--json)
echo "result=$PACKAGES" >> "$GITHUB_OUTPUT"
checks:
needs: list
runs-on: ubuntu-latest
strategy:
matrix:
check: ${{ fromJSON(needs.list.outputs.checks) }}
steps:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@v21
- uses: DeterminateSystems/magic-nix-cache-action@v13
- run: nix build .#checks.x86_64-linux.${{ matrix.check }}
packages:
needs: list
runs-on: ubuntu-latest
strategy:
matrix:
package: ${{ fromJSON(needs.list.outputs.packages) }}
steps:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@v21
- uses: DeterminateSystems/magic-nix-cache-action@v13
- run: nix run .#${{ matrix.package }}
- run: git diff --exit-code
nix-checks-pass:
if: always()
needs: [list, checks, packages]
runs-on: ubuntu-latest
steps:
- if: >-
contains(needs.*.result, 'failure') ||
contains(needs.*.result, 'cancelled')
run: exit 1