From fbd42376f9654be0625a798666064bd7b4190160 Mon Sep 17 00:00:00 2001 From: Felix Singer Date: Fri, 30 May 2025 22:27:27 +0200 Subject: [PATCH 1/4] nixos/jenkins: Make use of mkEnableOption Signed-off-by: Felix Singer --- .../services/continuous-integration/jenkins/default.nix | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix index c76aac1fa7de..017608bbd1a6 100644 --- a/nixos/modules/services/continuous-integration/jenkins/default.nix +++ b/nixos/modules/services/continuous-integration/jenkins/default.nix @@ -11,13 +11,7 @@ in { options = { services.jenkins = { - enable = lib.mkOption { - type = lib.types.bool; - default = false; - description = '' - Whether to enable the jenkins continuous integration server. - ''; - }; + enable = lib.mkEnableOption "Jenkins, a continuous integration server"; user = lib.mkOption { default = "jenkins"; From 131d83ea6a2459b24c93faaaad24d6613260e7ef Mon Sep 17 00:00:00 2001 From: Felix Singer Date: Fri, 30 May 2025 22:37:11 +0200 Subject: [PATCH 2/4] nixos/jenkins: Introduce and make use of javaPackage option Signed-off-by: Felix Singer --- .../services/continuous-integration/jenkins/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix index 017608bbd1a6..f9bb85446784 100644 --- a/nixos/modules/services/continuous-integration/jenkins/default.nix +++ b/nixos/modules/services/continuous-integration/jenkins/default.nix @@ -83,6 +83,8 @@ in package = lib.mkPackageOption pkgs "jenkins" { }; + javaPackage = lib.mkPackageOption pkgs "jdk17" { }; + packages = lib.mkOption { default = [ pkgs.stdenv @@ -233,7 +235,7 @@ in # For reference: https://wiki.jenkins.io/display/JENKINS/JenkinsLinuxStartupScript script = '' - ${pkgs.jdk17}/bin/java ${lib.concatStringsSep " " cfg.extraJavaOptions} -jar ${cfg.package}/webapps/jenkins.war --httpListenAddress=${cfg.listenAddress} \ + ${cfg.javaPackage}/bin/java ${lib.concatStringsSep " " cfg.extraJavaOptions} -jar ${cfg.package}/webapps/jenkins.war --httpListenAddress=${cfg.listenAddress} \ --httpPort=${toString cfg.port} \ --prefix=${cfg.prefix} \ -Djava.awt.headless=true \ From d1f0807db5ba3d1229917c338009ababb6463cac Mon Sep 17 00:00:00 2001 From: Felix Singer Date: Fri, 30 May 2025 23:06:36 +0200 Subject: [PATCH 3/4] nixos/jenkins: Bump Java version to 21 Java 17 goes EOL in September 2026 and Jenkins already supports Java 21. So bump the Java version to 21. Signed-off-by: Felix Singer --- .../services/continuous-integration/jenkins/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix index f9bb85446784..96ded1e4c765 100644 --- a/nixos/modules/services/continuous-integration/jenkins/default.nix +++ b/nixos/modules/services/continuous-integration/jenkins/default.nix @@ -83,13 +83,13 @@ in package = lib.mkPackageOption pkgs "jenkins" { }; - javaPackage = lib.mkPackageOption pkgs "jdk17" { }; + javaPackage = lib.mkPackageOption pkgs "jdk21" { }; packages = lib.mkOption { default = [ pkgs.stdenv pkgs.git - pkgs.jdk17 + pkgs.jdk21 config.programs.ssh.package pkgs.nix ]; From e3846c4216caf5ea1bcc1d7f69810186d22d1c0e Mon Sep 17 00:00:00 2001 From: Felix Singer Date: Sat, 31 May 2025 00:30:32 +0200 Subject: [PATCH 4/4] jenkins: Pin Java version to 21 Java 21 is the latest supported version by Jenkins. In order to not get any unexpected issues, pin the Java package to 21. Signed-off-by: Felix Singer --- pkgs/by-name/je/jenkins/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/je/jenkins/package.nix b/pkgs/by-name/je/jenkins/package.nix index c692d25eda70..1cb0d7d042c6 100644 --- a/pkgs/by-name/je/jenkins/package.nix +++ b/pkgs/by-name/je/jenkins/package.nix @@ -8,7 +8,7 @@ gnused, makeWrapper, nix, - openjdk, + jdk21, writeScript, nixosTests, jq, @@ -33,10 +33,10 @@ stdenv.mkDerivation (finalAttrs: { cp "$src" "$out/webapps/jenkins.war" # Create the `jenkins-cli` command. - ${openjdk}/bin/jar -xf "$src" WEB-INF/lib/cli-${finalAttrs.version}.jar \ + ${jdk21}/bin/jar -xf "$src" WEB-INF/lib/cli-${finalAttrs.version}.jar \ && mv WEB-INF/lib/cli-${finalAttrs.version}.jar "$out/share/jenkins-cli.jar" - makeWrapper "${openjdk}/bin/java" "$out/bin/jenkins-cli" \ + makeWrapper "${jdk21}/bin/java" "$out/bin/jenkins-cli" \ --add-flags "-jar $out/share/jenkins-cli.jar" '';