summary refs log tree commit diff
diff options
context:
space:
mode:
authorBjørn Forsman <bjorn.forsman@gmail.com>2022-07-18 10:17:40 +0200
committerBjørn Forsman <bjorn.forsman@gmail.com>2022-07-23 13:30:53 +0200
commit16108ff74a5949ab43851be17860a177766feab0 (patch)
tree4e54a4143e36b154108352a2f24ab4efd6ad4190
parent57d8154c4ef7ff2f0c7a667b92eb49b9f6744182 (diff)
downloadnixpkgs-16108ff74a5949ab43851be17860a177766feab0.tar
nixpkgs-16108ff74a5949ab43851be17860a177766feab0.tar.gz
nixpkgs-16108ff74a5949ab43851be17860a177766feab0.tar.bz2
nixpkgs-16108ff74a5949ab43851be17860a177766feab0.tar.lz
nixpkgs-16108ff74a5949ab43851be17860a177766feab0.tar.xz
nixpkgs-16108ff74a5949ab43851be17860a177766feab0.tar.zst
nixpkgs-16108ff74a5949ab43851be17860a177766feab0.zip
nixos/jenkins-job-builder: set serviceConfig.Type = "oneshot"
This change allows detecting configuration errors during
switch-to-configuration instead of them being reported asynchronously
*after* switch-to-configuration has exited.

(And update the NixOS test accordingly.)
-rw-r--r--nixos/modules/services/continuous-integration/jenkins/job-builder.nix1
-rw-r--r--nixos/tests/jenkins.nix6
2 files changed, 2 insertions, 5 deletions
diff --git a/nixos/modules/services/continuous-integration/jenkins/job-builder.nix b/nixos/modules/services/continuous-integration/jenkins/job-builder.nix
index edbf31f5ca1..49b39b03d47 100644
--- a/nixos/modules/services/continuous-integration/jenkins/job-builder.nix
+++ b/nixos/modules/services/continuous-integration/jenkins/job-builder.nix
@@ -243,6 +243,7 @@ in {
             done
           '' + (if cfg.accessUser != "" then reloadScript else "");
       serviceConfig = {
+        Type = "oneshot";
         User = jenkinsCfg.user;
         RuntimeDirectory = "jenkins-job-builder";
       };
diff --git a/nixos/tests/jenkins.nix b/nixos/tests/jenkins.nix
index 63b5860f0d2..3f111426db3 100644
--- a/nixos/tests/jenkins.nix
+++ b/nixos/tests/jenkins.nix
@@ -81,7 +81,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
     in ''
     start_all()
 
-    master.wait_for_unit("jenkins")
+    master.wait_for_unit("default.target")
 
     assert "Authentication required" in master.succeed("curl http://localhost:8080")
 
@@ -96,8 +96,6 @@ import ./make-test-python.nix ({ pkgs, ...} : {
 
     with subtest("jobs are declarative"):
         # Check that jobs are created on disk.
-        master.wait_for_unit("jenkins-job-builder")
-        master.wait_until_fails("systemctl is-active jenkins-job-builder")
         master.wait_until_succeeds("test -f /var/lib/jenkins/jobs/job-1/config.xml")
         master.wait_until_succeeds("test -f /var/lib/jenkins/jobs/folder-1/config.xml")
         master.wait_until_succeeds("test -f /var/lib/jenkins/jobs/folder-1/jobs/job-2/config.xml")
@@ -115,8 +113,6 @@ import ./make-test-python.nix ({ pkgs, ...} : {
         )
 
         # Check that jobs are removed from disk.
-        master.wait_for_unit("jenkins-job-builder")
-        master.wait_until_fails("systemctl is-active jenkins-job-builder")
         master.wait_until_fails("test -f /var/lib/jenkins/jobs/job-1/config.xml")
         master.wait_until_fails("test -f /var/lib/jenkins/jobs/folder-1/config.xml")
         master.wait_until_fails("test -f /var/lib/jenkins/jobs/folder-1/jobs/job-2/config.xml")