docker-disguised-guacamole/Jenkinsfile

57 lines
1.4 KiB
Groovy

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", "jre8"],
["9", "jre8"],
]
stage("Checkout") {
checkout scm
}
stage("Build") {
versions.each { version ->
ansiColor {
def tomcatVersion = version[0]
def jreVersion = version[1]
def image
image = docker.build(
"${dockerNamespace}/${dockerBase}:tomcat${tomcatVersion}-${jreVersion}",
"--build-arg TOMCAT_VERSION=${tomcatVersion} --build-arg TOMCAT_JRE=${jreVersion} .")
def guacamoleVersion
image.inside() {
ansiColor {
dir("tmp") {
deleteDir()
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 = "${guacamoleVersion}-tomcat${tomcatVersion}-${jreVersion}"
images << [ image, imageTag ]
}
}
}
stage("Push") {
images.each { imageData ->
def image = imageData[0]
def imageTag = imageData[1]
image.push(imageTag)
}
}
}