diff --git a/nix/gitlab-ci/default.nix b/nix/gitlab-ci/default.nix index fbc59b81a8..47525a76ad 100644 --- a/nix/gitlab-ci/default.nix +++ b/nix/gitlab-ci/default.nix @@ -16,15 +16,12 @@ let allow_failure = true; tags = [ "macos" ]; }; - in { - stages = [ "build" "deploy-mach" "deploy-other" ]; - - nixCache = { + linux = system: { stage = "build"; image = "nixos/nix:latest"; script = [ "nix run -f ./ third_party.nixpkgs.bash -c ./hack/populate_secrets.sh" - "nix build -v -f ./ci-root.nix --substituters \"https://cache.nixos.org/ s3://lukegb-nix-cache?endpoint=storage.googleapis.com&trusted=1\"" + "nix build -v -f ./ci-root.nix --argstr system ${system} --substituters \"https://cache.nixos.org/ s3://lukegb-nix-cache?endpoint=storage.googleapis.com&trusted=1\"" "GOOGLE_APPLICATION_CREDENTIALS=$HOME/sa.json nix run -f ./ go.nix.bcacheup -c bcacheup --cache_url gs://lukegb-nix-cache ./result" "cat ./result/other-systemPathJSON > systems.json" ]; @@ -34,13 +31,17 @@ let }; tags = [ "cacher" ]; }; + in { + stages = [ "build" "deploy-mach" "deploy-other" ]; - nixCacheMacOSIntel = macOS "x86_64-darwin"; - nixCacheMacOSARM = macOS "aarch64-darwin"; + nixCache-x86_64-linux = linux "x86_64-linux"; + nixCache-aarch64-linux = linux "aarch64-linux"; + nixCache-x86_64-darwin = macOS "x86_64-darwin"; + nixCache-aarch64-darwin = macOS "aarch64-darwin"; lukegbcom = { stage = "deploy-other"; - needs = [{ job = "nixCache"; artifacts = false; }]; + needs = [{ job = "nixCache-x86_64-linux"; artifacts = false; }]; tags = [ "cacher" ]; only.refs = [ "branch/default" ]; @@ -55,7 +56,7 @@ let deployMachs = lib.filterAttrs (name: cfg: cfg.config.my.deploy.enable) depot.ops.nixos.systemConfigs; deployStage = machName: mach: ({ stage = "deploy-mach"; - needs = [{ job = "nixCache"; artifacts = true; }]; + needs = [{ job = "nixCache-${mach.config.my.systemType}"; artifacts = true; }]; tags = [ "deployer" ]; resource_group = machName;