nix-eval-jobs/.github/workflows/flake-check.yml

46 lines
1.2 KiB
YAML
Raw Normal View History

name: "Flake checks"
on:
pull_request:
push:
branches:
- main
jobs:
flake-checks:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v3
with:
# Nix Flakes doesn't work on shallow clones
fetch-depth: 0
- uses: cachix/install-nix-action@v18
with:
nix_path: nixpkgs=channel:nixos-unstable
- id: set-matrix
run: |
set -euo pipefail
matrix="$(nix flake show --json | jq '.checks."x86_64-linux" | keys' | jq -rcM '{attr: ., os: ["ubuntu-latest", "macos-latest"]}')"
echo "::set-output name=matrix::$matrix"
builds:
needs: flake-checks
runs-on: ${{ matrix.os }}
strategy:
matrix: ${{fromJSON(needs.flake-checks.outputs.matrix)}}
steps:
- uses: actions/checkout@v3
with:
# Nix Flakes doesn't work on shallow clones
fetch-depth: 0
- uses: cachix/install-nix-action@v18
with:
nix_path: nixpkgs=channel:nixos-unstable
- run: |
set -euo pipefail
system=$(nix-instantiate --eval --expr builtins.currentSystem | jq -r)
nix build -L .#checks.$system.${{ matrix.attr }}