aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancesco Colista <fcolista@alpinelinux.org>2017-07-13 10:22:55 +0000
committerFrancesco Colista <fcolista@alpinelinux.org>2017-07-13 10:23:00 +0000
commitb3035afd9af9784996e38362dd5ded3c6c4e0cab (patch)
treec6fabaaf8c7d5d8e11f7f7bb36021321d30e9cbd
parent5e4b96e23871ee28ef593b439f8c07ca7c7eb5bb (diff)
downloadaports-b3035afd9af9784996e38362dd5ded3c6c4e0cab.tar.bz2
aports-b3035afd9af9784996e38362dd5ded3c6c4e0cab.tar.xz
testing/jenkins:new aport
-rw-r--r--testing/jenkins/APKBUILD44
-rw-r--r--testing/jenkins/jenkins.confd11
-rw-r--r--testing/jenkins/jenkins.initd53
-rw-r--r--testing/jenkins/jenkins.logrotate17
-rw-r--r--testing/jenkins/jenkins.pre-install5
5 files changed, 130 insertions, 0 deletions
diff --git a/testing/jenkins/APKBUILD b/testing/jenkins/APKBUILD
new file mode 100644
index 0000000000..8ceebe3c08
--- /dev/null
+++ b/testing/jenkins/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=jenkins
+pkgver=2.60.1
+pkgrel=0
+pkgdesc="Extendable continuous integration server (stable version)"
+url="https://jenkins.io"
+arch="noarch"
+license="MIT"
+depends="openjdk8 openjdk8-jre openjdk8-jre-base
+ freetype ttf-dejavu xvfb fontconfig"
+install="$pkgname.pre-install"
+options="!check"
+pkgusers="$pkgname"
+pkggroups="$pkgname"
+source="jenkins-$pkgver.war::http://mirrors.jenkins.io/war-stable/$pkgver/$pkgname.war
+ $pkgname.logrotate
+ $pkgname.initd
+ $pkgname.confd"
+builddir="$srcdir/"
+
+build() {
+ cd "$builddir"
+ return 0
+}
+
+package() {
+ cd "$builddir"
+ install -Dm755 "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname
+ install -Dm755 "$srcdir"/$pkgname-$pkgver.war \
+ "$pkgdir"/usr/share/webapps/jenkins/$pkgname.war
+ install -Dm644 "$srcdir"/$pkgname.logrotate \
+ "$pkgdir"/etc/logrotate.d/$pkgname
+ mkdir -p "$pkgdir"/var/log/jenkins
+ chown -R $pkgusers:$pkggroups "$pkgdir"/var/log/jenkins
+}
+
+sha512sums="0eef089380bc3acff62b5dcf2e36bbd7d5f973d269cc8d8d429bfaae80835dd321055038ceb0b7d39a6c291685347fa905a249f312c3970d5210450596b78518 jenkins-2.60.1.war
+74423d3c66e2312eb3a1590e0582ccd82fc01b410d3bfc0627bef56fe6f4e7f4ea01a7a2d92a7a0c4870a1a1c48e911fe7eab3073e14db4910b52158182e5856 jenkins.logrotate
+43686a537248c7a0a8fe53c3ca9577c8ffb50a141248de028d398d0fd3b3be8562b6cb2c63b44b3b0ac58d6431e8907790553791b2e125d1bfc2e3263ffaa83e jenkins.initd
+7247750a13fc2537dc1e405f6d8221ccdc80cfbaf40c47327ee04c206afa8607ada52e7b895c8eb3489dd9f6a94b42b8b38110b3120948a35dc4f197fe4c08ed jenkins.confd"
diff --git a/testing/jenkins/jenkins.confd b/testing/jenkins/jenkins.confd
new file mode 100644
index 0000000000..0a76a098f3
--- /dev/null
+++ b/testing/jenkins/jenkins.confd
@@ -0,0 +1,11 @@
+JENKINS_HOME="/var/lib/jenkins"
+JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
+JENKINS_PORT="8080"
+JENKINS_DEBUG_LEVEL="5"
+JENKINS_ENABLE_ACCESS_LOG="no"
+JENKINS_HANDLER_MAX="100"
+JENKINS_HANDLER_IDLE="20"
+JENKINS_ARGS=""
+JENKINS_USER=jenkins
+JENKINS_PIDFILE="/var/run/jenkins.pid"
+JENKINS_WAR="/usr/share/webapps/jenkins/jenkins.war"
diff --git a/testing/jenkins/jenkins.initd b/testing/jenkins/jenkins.initd
new file mode 100644
index 0000000000..7520edabbd
--- /dev/null
+++ b/testing/jenkins/jenkins.initd
@@ -0,0 +1,53 @@
+#!/sbin/openrc-run
+
+depend() {
+ need net
+ use dns logger mysql postgresql
+}
+
+checkconfig() {
+ if [ ! -n "$JENKINS_HOME" ] ; then
+ eerror "JENKINS_HOME not configured"
+ return 1
+ fi
+ if [ ! -d "$JENKINS_HOME" ] ; then
+ checkpath -q -d -o jenkins:jenkins -m 0755 "$JENKINS_HOME" || return 1
+ fi
+ return 0
+}
+
+start() {
+ checkconfig || return 1
+
+ JAVA_HOME="/usr/lib/jvm/default-jvm"
+ COMMAND=$JAVA_HOME/bin/java
+
+ JAVA_PARAMS="$JENKINS_JAVA_OPTIONS -DJENKINS_HOME=$JENKINS_HOME -jar $JENKINS_WAR"
+
+ # Don't use --daemon here, because in this case stop will not work
+ PARAMS="--logfile=/var/log/jenkins/jenkins.log"
+ [ -n "$JENKINS_PORT" ] && PARAMS="$PARAMS --httpPort=$JENKINS_PORT"
+ [ -n "$JENKINS_DEBUG_LEVEL" ] && PARAMS="$PARAMS --debug=$JENKINS_DEBUG_LEVEL"
+ [ -n "$JENKINS_HANDLER_STARTUP" ] && PARAMS="$PARAMS --handlerCountStartup=$JENKINS_HANDLER_STARTUP"
+ [ -n "$JENKINS_HANDLER_MAX" ] && PARAMS="$PARAMS --handlerCountMax=$JENKINS_HANDLER_MAX"
+ [ -n "$JENKINS_HANDLER_IDLE" ] && PARAMS="$PARAMS --handlerCountMaxIdle=$JENKINS_HANDLER_IDLE"
+ [ -n "$JENKINS_ARGS" ] && PARAMS="$PARAMS $JENKINS_ARGS"
+
+ if [ "$JENKINS_ENABLE_ACCESS_LOG" = "yes" ]; then
+ PARAMS="$PARAMS --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger --simpleAccessLogger.format=combined --simpleAccessLogger.file=/var/log/jenkins/access_log"
+ fi
+
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --quiet --background \
+ --make-pidfile --pidfile $JENKINS_PIDFILE \
+ --user ${JENKINS_USER} \
+ --exec "${COMMAND}" -- $JAVA_PARAMS $PARAMS
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --quiet --pidfile $JENKINS_PIDFILE
+ eend $?
+}
+
diff --git a/testing/jenkins/jenkins.logrotate b/testing/jenkins/jenkins.logrotate
new file mode 100644
index 0000000000..33b1660045
--- /dev/null
+++ b/testing/jenkins/jenkins.logrotate
@@ -0,0 +1,17 @@
+/var/log/jenkins/jenkins.log /var/log/jenkins/access_log {
+ compress
+ dateext
+ maxage 365
+ rotate 99
+ size=+4096k
+ notifempty
+ missingok
+ create 644
+ postrotate
+ [ -r /etc/conf.d/jenkins ] && . /etc/conf.d/jenkins
+ if [ -s /var/run/jenkins.pid ]; then
+ JPID=$(cat /var/run/jenkins.pid)
+ test -n "$(find /proc/$JPID -maxdepth 0 -user ${RUN_AS:-jenkins} 2>/dev/null)" && kill -s ALRM $JPID || :
+ fi
+ endscript
+}
diff --git a/testing/jenkins/jenkins.pre-install b/testing/jenkins/jenkins.pre-install
new file mode 100644
index 0000000000..4db91f860f
--- /dev/null
+++ b/testing/jenkins/jenkins.pre-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+addgroup -S jenkins 2>/dev/null
+adduser -S -D -h /var/lib/jenkins -s /sbin/nologin -G jenkins -g jenkins jenkins 2>/dev/null
+exit 0
+