about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix')
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix48
1 files changed, 44 insertions, 4 deletions
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 310755fb5324..13a6d596599a 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, common-updater-scripts, coreutils, git, gnused, nix, nixfmt
+, writeScript, nixosTests, jq, cacert, curl }:
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.249.1";
+  version = "2.263.1";
 
   src = fetchurl {
     url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "1mjvxl48v0rdrs6hzwh4mx5xvx3lnqs6njx3d7nfdfp2nf2s9353";
+    sha256 = "1wfn5r356fqy8ypqnw44ir0cy8qr5ck6xckxnnn2c9x324mypv8f";
   };
 
   buildCommand = ''
@@ -14,11 +15,50 @@ stdenv.mkDerivation rec {
     cp "$src" "$out/webapps/jenkins.war"
   '';
 
+  passthru = {
+    tests = { inherit (nixosTests) jenkins; };
+
+    updateScript = writeScript "update.sh" ''
+      #!${stdenv.shell}
+      set -o errexit
+      PATH=${
+        stdenv.lib.makeBinPath [
+          cacert
+          common-updater-scripts
+          coreutils
+          curl
+          git
+          gnused
+          jq
+          nix
+          nixfmt
+        ]
+      }
+
+      core_json="$(curl -s --fail --location https://updates.jenkins.io/stable/update-center.actual.json | jq .core)"
+      oldVersion=$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion jenkins" | tr -d '"')
+
+      version="$(jq -r .version <<<$core_json)"
+      sha256="$(jq -r .sha256 <<<$core_json)"
+      hash="$(nix-hash --type sha256 --to-base32 "$sha256")"
+      url="$(jq -r .url <<<$core_json)"
+
+      if [ ! "$oldVersion" = "$version" ]; then
+        update-source-version jenkins "$version" "$hash" "$url"
+        nixpkgs="$(git rev-parse --show-toplevel)"
+        default_nix="$nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix"
+        nixfmt "$default_nix"
+      else
+        echo "jenkins is already up-to-date"
+      fi
+    '';
+  };
+
   meta = with stdenv.lib; {
     description = "An extendable open source continuous integration server";
     homepage = "https://jenkins-ci.org";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = with maintainers; [ coconnor fpletz earldouglas ];
+    maintainers = with maintainers; [ coconnor fpletz earldouglas nequissimus ];
   };
 }