name: Build on: push: branches: - main - 'test-*' pull_request: jobs: # Job to find all hosts that should be built get-hosts: runs-on: ubuntu-latest container: catthehacker/ubuntu:act-24.04 outputs: hosts: ${{ steps.set-hosts.outputs.hosts }} steps: - uses: actions/checkout@v4 - name: Install Nix uses: cachix/install-nix-action@v27 - id: set-hosts run: | # Extract host names from nixosConfigurations HOSTS=$(nix eval .#nixosConfigurations --apply "builtins.attrNames" --json) echo "hosts=$HOSTS" >> $GITHUB_OUTPUT build: needs: get-hosts runs-on: ubuntu-latest container: catthehacker/ubuntu:act-24.04 strategy: fail-fast: false matrix: host: ${{ fromJson(needs.get-hosts.outputs.hosts) }} steps: - uses: actions/checkout@v4 - name: Install Nix uses: cachix/install-nix-action@v27 - name: Build NixOS configuration run: nix build .#nixosConfigurations.${{ matrix.host }}.config.system.build.toplevel