Adding pinned files to deactivating bundled plugins 88/139188/2 release-20170922
authorhyokeun <hyokeun.jeon@samsung.com>
Fri, 14 Jul 2017 07:36:00 +0000 (16:36 +0900)
committerHyokeun Jeon <hyokeun.jeon@samsung.com>
Tue, 18 Jul 2017 01:36:05 +0000 (01:36 +0000)
Bundled plugins such as credentials are not updated manually.
Jenkins will overwrite it to default version after restart
even though we replaced old *.jpi to newer version.
To prevent this, {plugin_name}.jpi.pinned should used.

Change-Id: Ia8a81331a918e1c667bc2ff089feb8e53175570b

ant.jpi [deleted file]
debian/jenkins-plugins.preinst [new file with mode: 0644]
packaging/jenkins-plugins.spec

diff --git a/ant.jpi b/ant.jpi
deleted file mode 100644 (file)
index 950f3cc..0000000
Binary files a/ant.jpi and /dev/null differ
diff --git a/debian/jenkins-plugins.preinst b/debian/jenkins-plugins.preinst
new file mode 100644 (file)
index 0000000..61db9e3
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# Plugin pinning support for version 1.x
+pinned_list="credentials junit mailer matrix-project script-security ssh-credentials subversion"
+for pl in $pinned_list; do
+  if [ -d /var/lib/jenkins/plugins/$pl ]; then
+    rm -rf /var/lib/jenkins/plugins/$pl/*
+  fi
+  if [ -f /var/lib/jenkins/plugins/$pl.jpi ]; then
+    mv /var/lib/jenkins/plugins/$pl.jpi /var/lib/jenkins/plugins/$pl.bak
+  fi
+  if [ ! -f /var/lib/jenkins/plugins/$pl.jpi.pinned ]; then
+    touch /var/lib/jenkins/plugins/$pl.jpi.pinned
+  fi
+done
+
+exit 0
index 981e1a2..66ec8aa 100644 (file)
@@ -26,6 +26,22 @@ Jenkins plugins used in backend services for Tizen
 mkdir -p %{buildroot}%{destdir}
 cp plugins/* %{buildroot}%{destdir}/
 
+%pretrans
+# Plugin pinning support for version 1.x
+pinned_list="credentials junit mailer matrix-project script-security ssh-credentials subversion"
+for pl in $pinned_list; do
+  if [ -d /var/lib/jenkins/plugins/$pl ]; then
+    rm -rf /var/lib/jenkins/plugins/$pl/*
+  fi
+  if [ -f /var/lib/jenkins/plugins/$pl.jpi ]; then
+    mv /var/lib/jenkins/plugins/$pl.jpi /var/lib/jenkins/plugins/$pl.bak
+  fi
+  if [ ! -f /var/lib/jenkins/plugins/$pl.jpi.pinned ]; then
+    touch /var/lib/jenkins/plugins/$pl.jpi.pinned
+  fi
+done
+exit 0
+
 %pre
 /usr/bin/getent group jenkins >/dev/null || /usr/sbin/groupadd -r jenkins &>/dev/null || :
 /usr/bin/getent passwd jenkins >/dev/null || /usr/sbin/useradd -g jenkins -s /bin/bash -r -c "Jenkins Continuous Build server" \