From 5b24182876cdfd4e461865315d94421180190a51 Mon Sep 17 00:00:00 2001 From: Ari Gerus Date: Sun, 25 Feb 2024 20:23:48 +0100 Subject: [PATCH] ci: rework into using a job matrix --- .forgejo/workflows/ci.yml | 54 ++++++++++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 2558174..1a93780 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -6,16 +6,58 @@ on: branches: [main] jobs: - nixos-x86_64-linux: + get-x86_64-hosts: runs-on: self-hosted-x86_64-linux + outputs: + hosts: ${{ steps.output-hosts.outputs.hosts }} steps: - uses: actions/checkout@v3 - - run: ./.ci.sh - # - run: ./.ci.sdImages.sh + - name: output-hosts + run: | + HOSTS_JSON="$(nix eval -I nixpkgs=$(nix flake metadata nixpkgs --json | jq -r .path) --raw --impure --expr ' + with import { }; + builtins.toJSON (lib.mapAttrsToList (n: v: n) + (lib.attrsets.filterAttrs (n: v: v.pkgs.system == pkgs.system) + (builtins.getFlake(builtins.toString ./.)).outputs.nixosConfigurations))' + )" + echo "::set-output name=hosts::${HOSTS_JSON}" - nixos-aarch64-linux: + get-aarch64-hosts: runs-on: self-hosted-aarch64-linux + outputs: + hosts: ${{ steps.output-hosts.outputs.hosts }} steps: - uses: actions/checkout@v3 - - run: ./.ci.sh - # - run: ./.ci.sdImages.sh + - name: output-hosts + run: | + HOSTS_JSON="$(nix eval -I nixpkgs=$(nix flake metadata nixpkgs --json | jq -r .path) --raw --impure --expr ' + with import { }; + builtins.toJSON (lib.mapAttrsToList (n: v: n) + (lib.attrsets.filterAttrs (n: v: v.pkgs.system == pkgs.system) + (builtins.getFlake(builtins.toString ./.)).outputs.nixosConfigurations))' + )" + echo "::set-output name=hosts::${HOSTS_JSON}" + + build-nixos-x86_64-linux: + runs-on: self-hosted-x86_64-linux + needs: get-x86_64-hosts + strategy: + matrix: + host: ${{fromJSON(needs.get-x86_64-hosts.outputs.hosts)}} + steps: + - uses: actions/checkout@v3 + - name: build host configuration ${{ matrix.host }} + run: | + nixos-rebuild build --verbose --flake ".#${{ matrix.host }}" + + build-nixos-aarch64-linux: + runs-on: self-hosted-aarch64-linux + needs: get-aarch64-hosts + strategy: + matrix: + host: ${{fromJSON(needs.get-aarch64-hosts.outputs.hosts)}} + steps: + - uses: actions/checkout@v3 + - name: build host configuration ${{ matrix.host }} + run: | + nixos-rebuild build --verbose --flake ".#${{ matrix.host }}"