Compare commits

..

2 Commits

Author SHA1 Message Date
lyrathorpe 5f4b16d64e Merge pull request 'ci: evaluate hosts discovered from the flake, not a hard-coded list' (#19) from fix/ci-dynamic-host-eval into main
CI / flake (push) Successful in 2m4s
Reviewed-on: #19
2026-06-10 10:47:32 +01:00
Emma Thorpe b11e99d850 ci: evaluate hosts discovered from the flake, not a hard-coded list
CI / flake (pull_request) Successful in 2m5s
The eval steps listed hosts by hand and still referenced lyrathorpe-x1c,
which was removed (replaced by t400/macpro31), so CI errored. Derive the
NixOS and Darwin host lists from attrNames of nixos/darwinConfigurations
instead, so adding or removing a host needs no workflow change.

Verified locally under bash: all current hosts (edaas, macpro31, mbp,
t400, mac) evaluate; no removed host is referenced.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 10:43:12 +01:00
+10 -2
View File
@@ -34,10 +34,16 @@ jobs:
# Evaluate (not build) each host's toplevel so eval errors fail CI cheaply. # Evaluate (not build) each host's toplevel so eval errors fail CI cheaply.
# aarch64 / darwin hosts evaluate fine on an x86_64 runner; only building # aarch64 / darwin hosts evaluate fine on an x86_64 runner; only building
# would need emulation, which we deliberately avoid here. # would need emulation, which we deliberately avoid here.
#
# Host lists are discovered from the flake (attrNames of
# nixos/darwinConfigurations) rather than hard-coded, so adding or removing
# a host needs no change to this workflow.
- name: Evaluate NixOS host configurations - name: Evaluate NixOS host configurations
run: | run: |
set -euo pipefail set -euo pipefail
for host in lyrathorpe-mbp lyrathorpe-x1c emmathorpe-edaas; do hosts=$(nix eval --raw '.#nixosConfigurations' \
--apply 'cfgs: builtins.concatStringsSep "\n" (builtins.attrNames cfgs)')
for host in $hosts; do
echo "::group::eval $host" echo "::group::eval $host"
nix eval --raw ".#nixosConfigurations.$host.config.system.build.toplevel.drvPath" nix eval --raw ".#nixosConfigurations.$host.config.system.build.toplevel.drvPath"
echo echo
@@ -47,7 +53,9 @@ jobs:
- name: Evaluate Darwin host configurations - name: Evaluate Darwin host configurations
run: | run: |
set -euo pipefail set -euo pipefail
for host in lyrathorpe-mac; do hosts=$(nix eval --raw '.#darwinConfigurations' \
--apply 'cfgs: builtins.concatStringsSep "\n" (builtins.attrNames cfgs)')
for host in $hosts; do
echo "::group::eval $host" echo "::group::eval $host"
nix eval --raw ".#darwinConfigurations.$host.config.system.build.toplevel.drvPath" nix eval --raw ".#darwinConfigurations.$host.config.system.build.toplevel.drvPath"
echo echo