name: "ci: Check Syntax"
on:
workflow_dispatch:
push:
paths:
- "**.lock"
- "**.nix"
env:
NIX_SHOW_STATS: 1
jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Clone Repo
uses: actions/checkout@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: Install Nix
uses: cachix/install-nix-action@v31
with:
extra_nix_config: |
experimental-features = nix-command flakes
accept-flake-config = true
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
- name: Check Syntax
run: |
set -euo pipefail
system="$(nix eval --raw --impure --expr builtins.currentSystem)"
for host in $(nix eval --raw '.#nixosConfigurations' \
--apply 'c: builtins.concatStringsSep " " (builtins.attrNames c)')
do
echo "::group::Evaluating configuration '${host}'"
nix eval --raw --show-trace \
".#nixosConfigurations.${host}.config.system.build.toplevel.drvPath" > /dev/null
echo "::endgroup::"
done
for output in packages devShells
do
echo "::group::Evaluating '${output}'"
nix eval --show-trace ".#${output}.${system}" \
--apply 'builtins.mapAttrs (_: v: v.drvPath)' > /dev/null
echo "::endgroup::"
done
echo "::group::Evaluating 'formatter'"
nix eval --raw --show-trace ".#formatter.${system}.drvPath" > /dev/null
echo "::endgroup::"