/
incremental-build.jenkins
33 lines (31 loc) · 1.36 KB
/
incremental-build.jenkins
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
def DISTRO_LIST = ["node-ubuntu-18.04", "centos-6"]
def BUILDS = [:]
def DAILY_DATA = '/var/jenkins_home/daily-data'
DISTRO_LIST.each { DISTRO ->
BUILDS[DISTRO] = {
node {
docker.image(DISTRO).inside('--cap-add=SYS_ADMIN -u 0:0 --ulimit nofile=1024:1024 --network local-infra') {
stage(DISTRO + 'cleanup') {
cleanWs()
sh "mount -t overlay overlay -o lowerdir=${DAILY_DATA}/git,upperdir=${DAILY_DATA}/${DISTRO}-dest,workdir=${DAILY_DATA}/${DISTRO}-work ${DAILY_DATA}/${DISTRO}-dest"
sh "mkdir work"
sh "mkdir dest"
sh "mount -t overlay overlay -o lowerdir=${DAILY_DATA}/${DISTRO}-dest,upperdir=${WORKSPACE}/dest,workdir=${WORKSPACE}/work ${WORKSPACE}/dest"
}
stage(DISTRO + 'Build something') {
dir('dest'){
sh 'git fetch'
sh "git checkout ${scm.branches[0].name}"
sh 'make -C omd jmx4perl'
}
}
stage(DISTRO + 'Archiving') {
sh 'until umount dest; do sleep 1; done'
sh "until umount ${DAILY_DATA}/${DISTRO}-dest; do sleep 1; done"
sh 'ls -lah **'
}
}
}
}
}
parallel BUILDS