diff --git a/Dockerfile b/Dockerfile index e4878ec..45a1190 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,7 +32,7 @@ ARG TOMCAT_JRE=jre8 FROM maven:3-jdk-8 AS builder ARG GUACAMOLE_GIT_URL=https://github.com/apache/guacamole-client.git -ARG GUACAMOLE_VERSION=0.9.14 +ARG GUACAMOLE_VERSION=latest # Build environment variables ENV \ diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..d498642 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,54 @@ +node("docker && linux && amd64") { + def images = [] + def dockerNamespace = "icedream" + def dockerBase = "disguised-guacamole" + def dockerCredentials = "dockerhub_login_icedream" + def dockerRegistry = "" + def versions = [ + // syntax: [ tomcatVersion, jreVersion ] + ["8.5", "jre7"], + ["8.5", "jre8"], + ["9", "jre8"], + ] + def jreVersions = [ + "jre7", + "jre8", + ] + + stage("Checkout") { + checkout scm + } + + stage("Build") { + def imageVersion + + versions.forEach { versions -> + def tomcatVersion = versions[0] + def jreVersion = versions[1] + + def guacamoleVersion + def image = docker.build("", "--build-arg TOMCAT_VERSION=${tomcatVersion} --build-arg JRE_VERSION=${jreVersion} .") + + image.inside("-w /tmp") { + sh """ + unzip /opt/guacamole/guacamole.war META-INF/maven/org.apache.guacamole/guacamole/pom.properties + """ + guacamoleVersion = sh( + script: "grep -Po '(?i)^version=\\K.+\\s*\$' META-INF/maven/org.apache.guacamole/guacamole/pom.properties", + returnStdout: true, + ).trim() + } + + def imageTag = "${dockerNamespace}/${dockerBase}:${guacamoleVersion}-tomcat${tomcatVersion}-jre${jreVersion}" + images <<< [ image, imageFullName ] + } + } + + stage("Push") { + images.forEach { imageData -> + def image = imageData[0] + def imageTag = imageData[1] + image.push(imageTag) + } + } +} \ No newline at end of file