name: Evaluate configurations on: push: jobs: get-names: name: Get machine names runs-on: ubuntu-latest outputs: machines: ${{ steps.machines.outputs.machines }} steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Nix uses: cachix/install-nix-action@v30 - name: Get machine names id: machines run: | names=$(nix eval --json .#nixosConfigurations --apply 'builtins.attrNames') echo "machines=$names" >> "$GITHUB_OUTPUT" eval: name: Evaluate configuration runs-on: ubuntu-latest needs: get-names strategy: matrix: machine: ${{ fromJSON(needs.get-names.outputs.machines) }} steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Nix uses: cachix/install-nix-action@v30 - name: Eval config run: | nix eval --raw .#nixosConfigurations.${{ matrix.machine }}.config.system.build.toplevel