Skip to content

Commit 5ae2d64

Browse files
committed
[jenkins] Convert to scripted pipeline
1 parent 281e95c commit 5ae2d64

1 file changed

Lines changed: 45 additions & 56 deletions

File tree

Jenkinsfile

Lines changed: 45 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,58 @@
1-
pipeline {
2-
agent {
3-
label '( linux || sw.os.linux ) && ( x64 || x86_64 || x86 || hw.arch.x86 ) && ( docker || sw.tool.docker ) && !test'
4-
}
5-
stages {
6-
stage('Prepare environment') {
7-
steps {
8-
checkout scm
9-
sh "rm -rf /home/jenkins/workspace/" + JOB_NAME + "/build"
10-
sh "mkdir -p /home/jenkins/workspace/" + JOB_NAME + "/build"
11-
sh "chmod 777 /home/jenkins/workspace/" + JOB_NAME + "/build"
12-
}
13-
}
14-
stage('Build cross image') {
15-
steps {
16-
script {
17-
try {
18-
sh "docker logout"
19-
} catch (err) {}
20-
}
21-
sh "docker build -t ev3dev-lang-java:jdk-stretch -f system/Dockerfile." + DOCKER_ARCH + " system "
22-
sh "docker build -t ev3dev-lang-java:jdk-build -f scripts/Dockerfile scripts "
23-
}
1+
// OpenJDK Jenkins build pipeline
2+
3+
// docker linux build machine
4+
node('( linux || sw.os.linux ) && ( x64 || x86_64 || x86 || hw.arch.x86 ) && ( docker || sw.tool.docker ) && !test') {
5+
6+
// our docker images
7+
def osImage
8+
def bldImage
9+
10+
try {
11+
// clean and prepare
12+
cleanWs()
13+
checkout scm
14+
sh "mkdir -p ${env.WORKSPACE}/build && chmod 777 ${env.WORKSPACE}/build"
15+
16+
// do the docker build stuff
17+
stage("Docker build") {
18+
osImage = docker.build("ev3dev-lang-java:jdk-stretch", "-f system/Dockerfile.${params.DOCKER_ARCH} ./system")
19+
bldImage = docker.build("ev3dev-lang-java:jdk-build", "-f scripts/Dockerfile ./scripts")
2420
}
21+
22+
// prepare run parameters
23+
String mountParams = "-v ${env.WORKSPACE}/build:/build"
24+
String envParams = "-e JDKVER=${params.JDKVER_VALUE} -e JDKVM=${params.JDKVM_VALUE} -e JDKPLATFORM=${params.JDKPLATFORM_VALUE} -e AUTOBUILD=1"
25+
2526
stage("JDK download") {
26-
steps {
27-
sh "docker run --rm -v /home/jenkins/workspace/" + JOB_NAME + "/build:/build \
28-
-e JDKVER='" + JDKVER_VALUE + "' -e JDKVM='" + JDKVM_VALUE + "' -e JDKPLATFORM='" + JDKPLATFORM_VALUE + "' -e AUTOBUILD='1' \
29-
ev3dev-lang-java:jdk-build /opt/jdkcross/prepare.sh"
30-
sh "docker run --rm -v /home/jenkins/workspace/" + JOB_NAME + "/build:/build \
31-
-e JDKVER='" + JDKVER_VALUE + "' -e JDKVM='" + JDKVM_VALUE + "' -e JDKPLATFORM='" + JDKPLATFORM_VALUE + "' -e AUTOBUILD='1' \
32-
ev3dev-lang-java:jdk-build /opt/jdkcross/fetch.sh"
27+
bldImage.inside("${mountParams} ${envParams}") {
28+
sh "/opt/jdkcross/prepare.sh"
29+
sh "/opt/jdkcross/fetch.sh"
3330
}
3431
}
32+
3533
stage("JDK build") {
36-
steps {
37-
sh "docker run --rm -v /home/jenkins/workspace/" + JOB_NAME + "/build:/build \
38-
-e JDKVER='" + JDKVER_VALUE + "' -e JDKVM='" + JDKVM_VALUE + "' -e JDKPLATFORM='" + JDKPLATFORM_VALUE + "' -e AUTOBUILD='1' \
39-
ev3dev-lang-java:jdk-build /opt/jdkcross/build.sh"
34+
bldImage.inside("${mountParams} ${envParams}") {
35+
sh "/opt/jdkcross/build.sh"
4036
}
4137
}
42-
stage("JDK packaging") {
43-
steps {
44-
sh "docker run --rm -v /home/jenkins/workspace/" + JOB_NAME + "/build:/build \
45-
-e JDKVER='" + JDKVER_VALUE + "' -e JDKVM='" + JDKVM_VALUE + "' -e JDKPLATFORM='" + JDKPLATFORM_VALUE + "' -e AUTOBUILD='1' \
46-
ev3dev-lang-java:jdk-build /opt/jdkcross/zip.sh"
4738

48-
archiveArtifacts artifacts: 'build/jri-' + JDKPLATFORM_VALUE + '.tar.gz', fingerprint: true
49-
archiveArtifacts artifacts: 'build/jdk-' + JDKPLATFORM_VALUE + '.tar.gz', fingerprint: true
50-
archiveArtifacts artifacts: 'build/jmods-' + JDKPLATFORM_VALUE + '.tar.gz', fingerprint: true
39+
stage("JDK packaging") {
40+
bldImage.inside("${mountParams} ${envParams}") {
41+
sh "/opt/jdkcross/zip.sh"
5142
}
43+
archiveArtifacts artifacts: "${env.WORKSPACE}/build/jri-${params.JDKPLATFORM_VALUE}.tar.gz", fingerprint: true
44+
archiveArtifacts artifacts: "${env.WORKSPACE}/build/jdk-${params.JDKPLATFORM_VALUE}.tar.gz", fingerprint: true
45+
archiveArtifacts artifacts: "${env.WORKSPACE}/build/jmods-${params.JDKPLATFORM_VALUE}.tar.gz", fingerprint: true
5246
}
53-
}
54-
post {
55-
always {
56-
script {
57-
try {
58-
sh "docker rmi ev3dev-lang-java:jdk-build 2>/dev/null"
59-
} catch (err) {}
60-
try {
61-
sh "docker rmi ev3dev-lang-java:jdk-stretch 2>/dev/null"
62-
} catch (err) {}
63-
try {
64-
cleanWs()
65-
} catch (err) {}
66-
}
47+
} finally {
48+
stage ('Cleanup') {
49+
try {
50+
sh "docker rmi ${bldImage.id} 2>/dev/null"
51+
} catch (err) {}
52+
try {
53+
sh "docker rmi ${osImage.id} 2>/dev/null"
54+
} catch (err) {}
55+
cleanWs()
6756
}
6857
}
6958
}

0 commit comments

Comments
 (0)