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 | |
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.
-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; |