name: build_systems on: workflow_dispatch: pull_request: push: branches: [main] schedule: - cron: "0 22 * * *" jobs: prebuild-common: name: prebuild-common-x86-64-v3 runs-on: nix-cache-builder steps: - uses: actions/checkout@v4 # portal-1 is the smallest system closure: 95% of its derivations are # shared by all five systems, so it is a maintainable common cache seed. # Keep going so one failing package does not stop unrelated cache entries # from being built. - name: Build common packages run: nixos-rebuild build --keep-going --accept-flake-config --flake ./#portal-1 - name: Copy common packages to nix-cache run: nix copy --accept-flake-config --to unix:///host-nix/var/nix/daemon-socket/socket .#nixosConfigurations.portal-1.config.system.build.toplevel build: name: build-${{ matrix.system }} needs: prebuild-common runs-on: self-hosted strategy: matrix: system: - "bob" - "brain" - "jeeves" - "rhapsody-in-green" - "portal-1" continue-on-error: true steps: - uses: actions/checkout@v4 - name: Build default package run: "nixos-rebuild build --accept-flake-config --flake ./#${{ matrix.system }}" - name: copy to nix-cache run: nix copy --accept-flake-config --to unix:///host-nix/var/nix/daemon-socket/socket .#nixosConfigurations.${{ matrix.system }}.config.system.build.toplevel