diff options
author | Bjørn Forsman <bjorn.forsman@gmail.com> | 2015-10-04 16:11:28 +0200 |
---|---|---|
committer | Bjørn Forsman <bjorn.forsman@gmail.com> | 2015-10-04 20:04:00 +0200 |
commit | 67723df930d74ecda8c8a66740df7c5650da8e6a (patch) | |
tree | 9e9550f7639a6d29ed80055557e5313c60ad1705 /nixos/modules/services/continuous-integration | |
parent | f91c5bcc7a1e171ea19c55cdf45bb3de9bcaf396 (diff) | |
download | nixlib-67723df930d74ecda8c8a66740df7c5650da8e6a.tar nixlib-67723df930d74ecda8c8a66740df7c5650da8e6a.tar.gz nixlib-67723df930d74ecda8c8a66740df7c5650da8e6a.tar.bz2 nixlib-67723df930d74ecda8c8a66740df7c5650da8e6a.tar.lz nixlib-67723df930d74ecda8c8a66740df7c5650da8e6a.tar.xz nixlib-67723df930d74ecda8c8a66740df7c5650da8e6a.tar.zst nixlib-67723df930d74ecda8c8a66740df7c5650da8e6a.zip |
nixos/jenkins: rework environment handling
Jenkins gets (by default) an additional environment of { NIX_REMOTE = "daemon"; } This has the following problems: 1. NIX_REMOTE disappears when users specify additional environment variables, because defaults have low merge priority. 2. nix cannot be used without additional NIX_PATH envvar, which is currently missing. 3. If you try to use HTTPS, you'll see that jenkins lacks SSL_CERT_FILE envvar, causing it to fail. This commit adds config.environment.sessionVariables and NIX_REMOTE to the set of variables that are always there for jenkins, making nix and HTTPS work out of the box. services.jenkins.environment is now empty by default.
Diffstat (limited to 'nixos/modules/services/continuous-integration')
-rw-r--r-- | nixos/modules/services/continuous-integration/jenkins/default.nix | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix index 95d2aecfac7d..cf13c73ab4df 100644 --- a/nixos/modules/services/continuous-integration/jenkins/default.nix +++ b/nixos/modules/services/continuous-integration/jenkins/default.nix @@ -65,11 +65,14 @@ in { }; environment = mkOption { - default = { NIX_REMOTE = "daemon"; }; + default = { }; type = with types; attrsOf str; description = '' Additional environment variables to be passed to the jenkins process. - The environment will always include JENKINS_HOME. + This setting will merge with everything in + <option>config.environment.sessionVariables</option>, + JENKINS_HOME and NIX_REMOTE. This option takes precedence and can + override any previously set environment variable. ''; }; @@ -106,9 +109,12 @@ in { after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; - environment = { - JENKINS_HOME = cfg.home; - } // cfg.environment; + environment = + config.environment.sessionVariables // + { JENKINS_HOME = cfg.home; + NIX_REMOTE = "daemon"; + } // + cfg.environment; path = cfg.packages; |