From 90bd5ed66bf670329327c824efd3e5d2a57689cf Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 8 Feb 2026 11:57:38 +0100 Subject: [PATCH 1/2] Determine hosts --- .github/workflows/build.yml | 34 ++++++++++++++++++++++++++++++++++ .gitignore | 1 + 2 files changed, 35 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..2a1fb35 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,34 @@ +name: "Build" +on: + pull_request: + +jobs: + determine_hosts: + name: "Determining hosts to build" + runs-on: ubuntu-latest + container: + image: catthehacker/ubuntu:act-latest + + steps: + - uses: actions/checkout@v5 + - uses: https://github.com/cachix/install-nix-action@v31 + with: + nix_path: nixpkgs=channel:nixos-unstable + - name: "List hosts" + id: hosts + run: nix eval .#nixosConfigurations --apply builtins.attrNames --json + outputs: + hosts: ${{ steps.hosts.outputs }} + + build: + runs-on: ubuntu-latest + container: + image: catthehacker/ubuntu:act-latest + needs: determine_hosts + strategy: + matrix: + hostname: ${{ fromJSON(needs.determine_hosts.outputs.hosts) }} + + steps: + - run: echo "${{ matrix.hostname }}" + diff --git a/.gitignore b/.gitignore index 485dee6..8daf605 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .idea +result From 4103c488b3958413b5c135fd751b9421ab01c62c Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 8 Feb 2026 11:58:43 +0100 Subject: [PATCH 2/2] Build each host --- .github/workflows/build.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2a1fb35..482df03 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,7 +16,8 @@ jobs: nix_path: nixpkgs=channel:nixos-unstable - name: "List hosts" id: hosts - run: nix eval .#nixosConfigurations --apply builtins.attrNames --json + run: | + nix eval .#nixosConfigurations --apply builtins.attrNames --json outputs: hosts: ${{ steps.hosts.outputs }} @@ -30,5 +31,11 @@ jobs: hostname: ${{ fromJSON(needs.determine_hosts.outputs.hosts) }} steps: - - run: echo "${{ matrix.hostname }}" + - name: "Define host" + env: + hostname: ${{ matrix.hostname }} + run: | + echo "${hostname}" + - run: | + nixos-rebuild build --flake ".#${hostname}"