1 import java.text.SimpleDateFormat
3 def DISTRO_LIST = ["ubuntu-18.04", "centos-6"]
4 def PACKAGE_BUILDS = [:]
5 def AGENT_LIST = ["linux-64bit", "linux-32bit", "windows" ]
8 def dateFormat = new SimpleDateFormat("yyyy.MM.dd")
10 def CMK_VERS = dateFormat.format(date)
11 def DAILY_DATA = '/var/jenkins_home/daily-data/' + BRANCH_NAME.replaceAll("/","-") + '/' + CMK_VERS
14 docker.image('ubuntu-18.04-windows').inside('-u 0:0 --cap-add=SYS_ADMIN --network local-infra') {
15 stage('checkout sources') {
17 sh "rm -rf ${DAILY_DATA}"
18 // Add line to delete folders older than 10 days
19 dir("${DAILY_DATA}/git") {
21 // Actually Dependent on Edition. For now set to Enterprise!
24 sh "make NEW_VERSION=${CMK_VERS} setversion"
30 AGENT_LIST.each { AGENT ->
31 AGENT_BUILDS['build agent ' + AGENT] = {
33 docker.image('agent-builder-' + AGENT).inside('-u 0:0 --cap-add=SYS_ADMIN --network local-infra') {
34 stage('build agent ' + AGENT) {
36 if (AGENT == 'linux-64bit') {
38 } else if (AGENT == 'linux-32bit') {
44 sh "mkdir agent-updater${AGENT}-work agent-updater${AGENT}-dest"
45 sh "mount -t overlay overlay -o lowerdir=${DAILY_DATA}/git,upperdir=${WORKSPACE}/agent-updater${AGENT}-dest,workdir=${WORKSPACE}/agent-updater${AGENT}-work ${WORKSPACE}/agent-updater${AGENT}-dest"
46 if (AGENT == '-windows') {
48 cd agent-updater${AGENT}-dest/agents/windows/
49 CHROOT_BUILD_DIR=${WORKSPACE}/agent-updater${AGENT}-dest \
50 CHROOT_NAME="agent-builder-windows" \
54 cd agent-updater${AGENT}-dest/enterprise/agents/windows/plugins
55 CHROOT_BUILD_DIR=${WORKSPACE}/agent-updater${AGENT}-dest \
59 mkdir -p ${DAILY_DATA}/agent-updater
60 cp agent-updater${AGENT}-dest/agents/windows/check_mk_agent.msi ${DAILY_DATA}/agent-updater
61 cp agent-updater${AGENT}-dest/enterprise/agents/windows/plugins/cmk-update-agent.exe ${DAILY_DATA}/agent-updater
63 } else { // Linux Agents (64 and 32 bit)
64 sh script: """cd agent-updater${AGENT}-dest/enterprise/agents/plugins \
65 && CHROOT_BUILD_DIR=${WORKSPACE}/agent-updater${AGENT}-dest \
66 BITNESS_SUFFIX='${AGENT}' \
70 mkdir -p ${DAILY_DATA}/agent-updater${AGENT}
71 cp agent-updater${AGENT}-dest/enterprise/agents/plugins/cmk-update-agent${AGENT} ${DAILY_DATA}/agent-updater
74 sh "until umount agent-updater${AGENT}-dest; do sleep 1; done"
83 docker.image('ubuntu-18.04-windows').inside('-u 0:0 --cap-add=SYS_ADMIN --network local-infra') {
84 stage('create tarball') {
85 dir("${DAILY_DATA}/git") {
86 sh "cp ${DAILY_DATA}/agent-updater/cmk-update-agent enterprise/agents/plugins/"
87 sh "cp ${DAILY_DATA}/agent-updater/cmk-update-agent-32 enterprise/agents/plugins/"
88 sh "cp ${DAILY_DATA}/agent-updater/cmk-update-agent.exe enterprise/agents/windows/plugins/"
89 sh "cp ${DAILY_DATA}/agent-updater/check_mk_agent.msi agents/windows"
96 DISTRO_LIST.each { DISTRO ->
97 PACKAGE_BUILDS[DISTRO] = {
99 docker.image(DISTRO).inside('--cap-add=SYS_ADMIN -u 0:0 --network local-infra') {
100 stage('build' + DISTRO + ' package') {
103 sh "mount -t overlay overlay -o lowerdir=${DAILY_DATA}/git,upperdir=${WORKSPACE}/dest,workdir=${WORKSPACE}/work ${WORKSPACE}/dest"
107 centos*|rh*|sles*|opensuse*)
114 DEBFULLNAME='Check_MK Team' DEBEMAIL='feedback@check-mk.org' make -C omd deb
119 sh 'until umount dest; do sleep 1; done'
120 sh "rm -rf ${DAILY_DATA}/${DISTRO}-{dest,work}"
121 sh "mv dest ${DAILY_DATA}/${DISTRO}-dest"
122 sh "mv work ${DAILY_DATA}/${DISTRO}-work"
123 sh "ls -lah ${DAILY_DATA}"
129 parallel PACKAGE_BUILDS