Add jenkinsfile for multibranch job on Jenkins
diff --git a/Dockerfile b/Dockerfile
index d681655..0f8f2b5 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -30,6 +30,8 @@
rpm \
dpkg \
libpng-dev \
+ libjpeg-progs \
+ pngquant \
make \
automake \
autoconf \
@@ -39,6 +41,13 @@
nasm \
gcc
-# For mvn-build
+# Make sure the /.config && /.npm (for UI module builds) is writable for all users
+RUN mkdir -p /.config && chmod -R 777 /.config
+RUN mkdir -p /.npm && chmod -R 777 /.npm
+
+# Make sure the /var/tmp (for RPM build) is writable for all users
+RUN mkdir -p /var/tmp/ && chmod -R 777 /var/tmp/
+
+# Make sure the /var/maven is writable for all users
RUN mkdir -p /var/maven/.m2/ && chmod -R 777 /var/maven/
ENV MAVEN_CONFIG=/var/maven/.m2
diff --git a/Jenkinsfile b/Jenkinsfile
index c41da46..4461e53 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -18,6 +18,21 @@
*/
node(label: 'ubuntu') {
+ def triggers = []
+ if (env.CHANGE_ID) {
+ triggers.push(issueCommentTrigger('.*test this please.*'))
+ }
+ if (env.BRANCH_NAME == 'master') {
+ triggers.push(upstream(
+ threshold: 'SUCCESS',
+ upstreamProjects: '../brooklyn-server/master, ../brooklyn-library/master, ../brooklyn-ui/master, ../brooklyn-client/master, ../brooklyn-dist/master'
+ ))
+ }
+
+ properties([
+ pipelineTriggers(triggers)
+ ])
+
catchError {
def environmentDockerImage
@@ -38,16 +53,16 @@
}
stage('Run tests') {
- environmentDockerImage.inside('-i --rm --name brooklyn-${DOCKER_TAG} --mount type=bind,source="${HOME}/.m2/settings.xml",target=/var/maven/.m2/settings.xml,readonly -v ${WORKSPACE}:/usr/build -w /usr/build') {
- sh 'mvn clean install -Duser.home=/var/maven -Duser.name=jenkins'
+ environmentDockerImage.inside('-i --name brooklyn-${DOCKER_TAG} -v ${WORKSPACE}/.m2:/var/maven/.m2 --mount type=bind,source="${HOME}/.m2/settings.xml",target=/var/maven/.m2/settings.xml,readonly -v ${WORKSPACE}:/usr/build -w /usr/build') {
+ sh 'mvn clean install -Prpm -Pdeb -Duser.home=/var/maven -Duser.name=jenkins'
}
}
// Conditional stage to deploy artifacts, when not building a PR
if (env.CHANGE_ID == null) {
stage('Deploy artifacts') {
- environmentDockerImage.inside('-i --rm --name brooklyn-${DOCKER_TAG} --mount type=bind,source="${HOME}/.m2/settings.xml",target=/var/maven/.m2/settings.xml,readonly -v ${WORKSPACE}:/usr/build -w /usr/build') {
- sh 'mvn deploy -DskipTests -Duser.home=/var/maven -Duser.name=jenkins'
+ environmentDockerImage.inside('-i --name brooklyn-${DOCKER_TAG} -v ${WORKSPACE}/.m2:/var/maven/.m2 --mount type=bind,source="${HOME}/.m2/settings.xml",target=/var/maven/.m2/settings.xml,readonly -v ${WORKSPACE}:/usr/build -w /usr/build') {
+ sh 'mvn deploy -Prpm -Pdeb -DskipTests -Duser.home=/var/maven -Duser.name=jenkins'
}
}
}