Create jenkins user in preinstall step
authorJunchun Guan <junchunx.guan@intel.com>
Fri, 14 Nov 2014 03:22:35 +0000 (11:22 +0800)
committerSoonKyu Park <sk7.park@samsung.com>
Sat, 11 Jun 2016 06:57:56 +0000 (15:57 +0900)
Change-Id: Ief1d33a7c773eb6fb4367cd49542d03bfd72d385
Signed-off-by: Junchun Guan <junchunx.guan@intel.com>
Conflicts:
debian/control
packaging/gbs.spec

debian/control
debian/gbs-jenkins-jobs.preinst [new file with mode: 0644]
debian/gbs-jenkins-scripts.preinst [new file with mode: 0644]
packaging/gbs.spec

index 0615d64..4de2edf 100644 (file)
@@ -70,5 +70,6 @@ Architecture: all
 Depends: ${misc:Depends},
  gbs,
  mic
+ mic,
 Description: Jenkins scripts used by gbs-jenkins-job
  These scripts are used by GBS local full build jenkins jobs. These scripts should be installed on Jenkins slave nodes.
diff --git a/debian/gbs-jenkins-jobs.preinst b/debian/gbs-jenkins-jobs.preinst
new file mode 100644 (file)
index 0000000..e4928b1
--- /dev/null
@@ -0,0 +1,15 @@
+: ${JENKINS_USER:=jenkins}
+: ${JENKINS_GROUP:=jenkins}
+
+# Create jenkins group and user if they don't exist.
+# sometimes tools that users want Jenkins to run need a shell,
+# so use /bin/bash. See JENKINS-4830
+if ! getent group "$JENKINS_GROUP" > /dev/null; then
+    addgroup --system --quiet "$JENKINS_GROUP"
+fi
+if ! id "$JENKINS_USER" >/dev/null 2>&1 ; then
+    adduser --system --quiet --home /var/lib/jenkins --no-create-home \
+        --ingroup "$JENKINS_GROUP" --disabled-password --shell /bin/bash \
+        --gecos 'Jenkins' \
+        "$JENKINS_USER"
+fi
diff --git a/debian/gbs-jenkins-scripts.preinst b/debian/gbs-jenkins-scripts.preinst
new file mode 100644 (file)
index 0000000..e4928b1
--- /dev/null
@@ -0,0 +1,15 @@
+: ${JENKINS_USER:=jenkins}
+: ${JENKINS_GROUP:=jenkins}
+
+# Create jenkins group and user if they don't exist.
+# sometimes tools that users want Jenkins to run need a shell,
+# so use /bin/bash. See JENKINS-4830
+if ! getent group "$JENKINS_GROUP" > /dev/null; then
+    addgroup --system --quiet "$JENKINS_GROUP"
+fi
+if ! id "$JENKINS_USER" >/dev/null 2>&1 ; then
+    adduser --system --quiet --home /var/lib/jenkins --no-create-home \
+        --ingroup "$JENKINS_GROUP" --disabled-password --shell /bin/bash \
+        --gecos 'Jenkins' \
+        "$JENKINS_USER"
+fi
index 7612f81..0814e50 100644 (file)
@@ -79,6 +79,7 @@ external software.
 
 %package jenkins-jobs
 Summary: GBS local full build jenkins jobs configurations.
+PreReq:  /usr/sbin/groupadd /usr/sbin/useradd
 
 %description jenkins-jobs
 These jenkins jobs are used to build tizen source from scratch or
@@ -86,6 +87,7 @@ only a part of packages, and create images finally.
 
 %package jenkins-scripts
 Summary:  Jenkins scripts used by gbs-jenkins-job
+PreReq:   /usr/sbin/groupadd /usr/sbin/useradd
 Requires: gbs
 Requires: mic
 
@@ -101,6 +103,11 @@ scripts should be installed on Jenkins slave nodes.
 %{__python} setup.py build
 make man
 
+%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" \
+    -d "%{workdir}" jenkins &>/dev/null || :
+
 %install
 %{__python} setup.py install --prefix=%{_prefix} --root=%{buildroot}