forked from wololock/sdkman-docker-pipeline-example
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Jenkinsfile
37 lines (32 loc) · 1.06 KB
/
Jenkinsfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
pipeline {
agent any
environment {
IMAGE_NAME = "mymaven" //<1>
}
stages {
stage("Build docker images") {
steps {
script {
def versions = readYaml file: "versions.yml" //<2>
def stages = versions.images.collectEntries { label, props -> //<3>
[(label): {
stage(label) {
sh """docker build \
--build-arg JAVA_VERSION=${props.java} \
--build-arg MAVEN_VERSION=${props.maven} \
${collectTags(props.tags, env.IMAGE_NAME)} \
.
"""
}
}]
}
parallel stages //<4>
}
}
}
}
}
@NonCPS
String collectTags(final List<String> tags, final String imageName) {
return tags.collect { tag -> "-t ${imageName}:${tag}" }.join(" ")
}