# Flake CI: formatting gate + evaluation of every host configuration. name: CI on: push: branches: [main] paths: - "**.nix" - "flake.lock" - ".gitea/workflows/ci.yaml" pull_request: paths: - "**.nix" - "flake.lock" - ".gitea/workflows/ci.yaml" jobs: flake: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - name: Install Nix uses: cachix/install-nix-action@8aa03977d8d733052d78f4e008a241fd1dbf36b3 # v31 with: extra_nix_config: | experimental-features = nix-command flakes accept-flake-config = true - name: Check formatting run: nix build --print-build-logs '.#checks.x86_64-linux.formatting' # Evaluate (not build) each host's toplevel so eval errors fail CI cheaply. # aarch64 hosts evaluate fine on an x86_64 runner; only building would need # emulation, which we deliberately avoid here. - name: Evaluate host configurations run: | set -euo pipefail for host in lyrathorpe-mbp lyrathorpe-x1c emmathorpe-edaas; do echo "::group::eval $host" nix eval --raw ".#nixosConfigurations.$host.config.system.build.toplevel.drvPath" echo echo "::endgroup::" done