From 27ba50b2e25a122aab4783a13b489e540db4e3fc Mon Sep 17 00:00:00 2001 From: Lucy Hochkamp Date: Thu, 9 Oct 2025 17:54:24 +0200 Subject: [PATCH] meow --- .woodpecker/build-cache.yaml | 31 ++++++++++++++++++++++++---- flake.nix | 39 +++++++++++++++++++++++++++++++----- 2 files changed, 61 insertions(+), 9 deletions(-) diff --git a/.woodpecker/build-cache.yaml b/.woodpecker/build-cache.yaml index 33ee20c5..cc233b5d 100644 --- a/.woodpecker/build-cache.yaml +++ b/.woodpecker/build-cache.yaml @@ -3,6 +3,7 @@ when: branch: main steps: + - name: cache - name: build-push image: ghcr.io/lix-project/lix:latest environment: @@ -11,12 +12,34 @@ steps: ATTIC_PUSH_TOKEN: from_secret: attic_push_token commands: - - echo "extra-experimental-features = nix-command flakes" >> /etc/nix/nix.conf + - | + export green="$(echo -e '\e[1;32m')" + export yellow="$(echo -e '\e[1;33m')" + export reset="$(echo -e '\e[0m')" + - | + cat > /etc/nix/nix.conf << EOF + # default settings in the docker image + build-users-group = nixbld + sandbox = false + + # additional settings + experimental-features = nix-command flakes + substituters = https://attic.hailsatan.eu/xyno https://cache.nixos.org/ + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= xyno:l2mXaEYOj2kSjxT1dbP1iVya1bBXmKuO7jRXUZohi8c= + trusted-substituters = + EOF + - nix build ".#nix" --print-build-logs --out-link nix --no-update-lock-file + - nix profile remove lix + - ./nix/bin/nix profile install ".#nix" --no-update-lock-file + - nix profile install ".#nix-fast-build" ".#nix-ci" --no-update-lock-file + - nix --version - export PATH=$PATH:$(nix build --no-link nixpkgs#attic-client --print-out-paths)/bin - attic login default $${ATTIC_ENDPOINT} $${ATTIC_PUSH_TOKEN} - attic use $${ATTIC_CACHE} - - attic watch-store $${ATTIC_CACHE} & - - nix build .#nixosConfigurations.ds9.config.system.build.toplevel .#nixosConfigurations.picard.config.system.build.toplevel .#nixosConfigurations.theseus.config.system.build.toplevel - - attic push $${ATTIC_CACHE} $(nix path-info .#nixosConfigurations.ds9.config.system.build.toplevel .#nixosConfigurations.picard.config.system.build.toplevel .#nixosConfigurations.theseus.config.system.build.toplevel) + # - attic watch-store $${ATTIC_CACHE} & + # - nix build .#nixosConfigurations.ds9.config.system.build.toplevel .#nixosConfigurations.picard.config.system.build.toplevel .#nixosConfigurations.theseus.config.system.build.toplevel + - nix flake archive --to https://attic.hailsatan.eu/xyno . + - nix-fast-build --attic-cache xyno --flake .#hydraJobs.systems + # - attic push $${ATTIC_CACHE} $(nix path-info .#nixosConfigurations.ds9.config.system.build.toplevel .#nixosConfigurations.picard.config.system.build.toplevel .#nixosConfigurations.theseus.config.system.build.toplevel) diff --git a/flake.nix b/flake.nix index 534dfd93..1299398c 100644 --- a/flake.nix +++ b/flake.nix @@ -70,6 +70,15 @@ ); overlays = [ self.overlays.default + (final: prev: { + inherit (final.unstable.lixPackageSets.latest) + nixpkgs-review + nix-direnv + nix-eval-jobs + nix-fast-build + colmena + ; + }) ]; genPkgs = system: @@ -110,13 +119,33 @@ pkgs.nixfmt-rfc-style pkgs.nil pkgs.sops - (pkgs.runCommand "nix-config-bin" {} '' - mkdir -p $out/bin - cp ${./bin}/* $out/bin - '') + (pkgs.runCommand "nix-config-bin" { } '' + mkdir -p $out/bin + cp ${./bin}/* $out/bin + '') ]; SOPS_CONFIG = (pkgs.callPackage ./sops.nix { instanceConfigs = lib.xyno.getDirs ./instances; }); - + + }; + hydraJobs.systems = lib.foldl' lib.recursiveUpdate { } [ + (builtins.mapAttrs ( + host: config: + lib.foldl' lib.recursiveUpdate { } ([ + { + inherit (config.config.system.build) initialRamdisk; + kernel = config.config.boot.kernelPackages.kernel; + } + ]) + ) self.nixosConfigurations) + ]; + + packages."x86_64-linux" = + let + pkgs = genPkgs "x86_64-linux"; + in + { + nix = pkgs.unstable.lixPackageSets.latest.nix; + nix-fast-build = pkgs.nix-fast-build; }; checks."x86_64-linux"."nixos" = let