diff --git a/.woodpecker/build-cache.yaml b/.woodpecker/build-cache.yaml index 33ee20c5..c9682b11 100644 --- a/.woodpecker/build-cache.yaml +++ b/.woodpecker/build-cache.yaml @@ -11,12 +11,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/README.md b/README.md index 3d9a97aa..0a9c9ae5 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +![pipeline status](https://woodpecker.hailsatan.eu/api/badges/1/status.svg) + + a new interation of xyno's nixos configurations meow diff --git a/flake.nix b/flake.nix index 534dfd93..5b3bf605 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.lix; + nix-fast-build = pkgs.nix-fast-build; }; checks."x86_64-linux"."nixos" = let