Add nix gitlab runner
This commit is contained in:
		
							parent
							
								
									e81357e233
								
							
						
					
					
						commit
						ab8b3d4a87
					
				
					 4 changed files with 61 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -15,6 +15,48 @@
 | 
			
		|||
        dockerImage = "debian";
 | 
			
		||||
        dockerPrivileged = true;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      # runner for building in docker via host's nix-daemon
 | 
			
		||||
      # nix store will be readable in runner, might be insecure
 | 
			
		||||
      nix = with lib;{
 | 
			
		||||
        # File should contain at least these two variables:
 | 
			
		||||
        # `CI_SERVER_URL`
 | 
			
		||||
        # `REGISTRATION_TOKEN`
 | 
			
		||||
        registrationConfigFile = config.age.secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.path; # 2
 | 
			
		||||
        dockerImage = "alpine";
 | 
			
		||||
        dockerVolumes = [
 | 
			
		||||
          "/nix/store:/nix/store:ro"
 | 
			
		||||
          "/nix/var/nix/db:/nix/var/nix/db:ro"
 | 
			
		||||
          "/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket:ro"
 | 
			
		||||
        ];
 | 
			
		||||
        dockerDisableCache = true;
 | 
			
		||||
        preBuildScript = pkgs.writeScript "setup-container" ''
 | 
			
		||||
          mkdir -p -m 0755 /nix/var/log/nix/drvs
 | 
			
		||||
          mkdir -p -m 0755 /nix/var/nix/gcroots
 | 
			
		||||
          mkdir -p -m 0755 /nix/var/nix/profiles
 | 
			
		||||
          mkdir -p -m 0755 /nix/var/nix/temproots
 | 
			
		||||
          mkdir -p -m 0755 /nix/var/nix/userpool
 | 
			
		||||
          mkdir -p -m 1777 /nix/var/nix/gcroots/per-user
 | 
			
		||||
          mkdir -p -m 1777 /nix/var/nix/profiles/per-user
 | 
			
		||||
          mkdir -p -m 0755 /nix/var/nix/profiles/per-user/root
 | 
			
		||||
          mkdir -p -m 0700 "$HOME/.nix-defexpr"
 | 
			
		||||
          . ${pkgs.nix}/etc/profile.d/nix-daemon.sh
 | 
			
		||||
          ${pkgs.nix}/bin/nix-channel --add https://nixos.org/channels/nixos-20.09 nixpkgs # 3
 | 
			
		||||
          ${pkgs.nix}/bin/nix-channel --update nixpkgs
 | 
			
		||||
          ${pkgs.nix}/bin/nix-env -i ${concatStringsSep " " (with pkgs; [ nix cacert git openssh ])}
 | 
			
		||||
        '';
 | 
			
		||||
        environmentVariables = {
 | 
			
		||||
          ENV = "/etc/profile";
 | 
			
		||||
          USER = "root";
 | 
			
		||||
          NIX_REMOTE = "daemon";
 | 
			
		||||
          PATH = "/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/default/sbin:/bin:/sbin:/usr/bin:/usr/sbin";
 | 
			
		||||
          NIX_SSL_CERT_FILE = "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt";
 | 
			
		||||
        };
 | 
			
		||||
        tagList = [ "nix" ];
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  systemd.services.gitlab-runner.serviceConfig.Nice = 10;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,8 @@
 | 
			
		|||
    secrets.lelgenio-cachix.file = ../secrets/lelgenio-cachix.age;
 | 
			
		||||
    secrets.monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.file =
 | 
			
		||||
      ../secrets/monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age;
 | 
			
		||||
    secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.file =
 | 
			
		||||
      ../secrets/gitlab-runner-thoreb-telemetria-registrationConfigFile.age;
 | 
			
		||||
    secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.file =
 | 
			
		||||
      ../secrets/rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.age;
 | 
			
		||||
    secrets.monolith-nix-serve-privkey.file =
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue