Archived
Check NixOS configurations / eval-hosts (push) Failing after 12m2s
Generates all nixosConfigurations from mkTarget(platform, buildType, hostPath) instead of hand-written per-host blocks, so adding a new platform or build type is a one-line addition. Per-machine identity (hostname, hostId, secrets, stateVersion) moves into hosts/<name>/host.nix; platform-specific config (hardware, boot, networking) into modules/platforms/*.nix; build-type config (minimal/server/docker/gui/ nix-cache/pxe-boot) into modules/build-types/*.nix. Old flat targets (nixos, docker, server, nix-cache, nix-minimal, pxe-boot) are replaced by the 17-target <platform>-<buildtype> matrix; each new target was verified to evaluate before its old counterpart was removed. CI workflows and docs/aliases now discover hosts dynamically via nixosConfigurations attrNames and /etc/flake-target instead of hardcoded lists, so they can't drift from flake.nix again. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
30 lines
820 B
YAML
30 lines
820 B
YAML
name: Check NixOS configurations
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- main
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
eval-hosts:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Nix
|
|
uses: DeterminateSystems/nix-installer-action@v19
|
|
|
|
- name: Evaluate all NixOS hosts
|
|
run: |
|
|
set -euo pipefail
|
|
hosts="$(nix --extra-experimental-features 'nix-command flakes' eval --json \
|
|
.#nixosConfigurations --apply builtins.attrNames | jq -r '.[]')"
|
|
for host in $hosts; do
|
|
echo "Evaluating ${host}"
|
|
nix --extra-experimental-features 'nix-command flakes' eval \
|
|
".#nixosConfigurations.${host}.config.system.build.toplevel.drvPath" --raw
|
|
done
|