Refactoring: Changed remaining check parameters starting with an 's' to the new rules...
[check_mk.git] / buildscripts / scripts / nightly-build.jenkins
bloba405d63365864772cc6799a7ae9b17868cd74f33
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" ]
6 def AGENT_BUILDS= [:]
8 def dateFormat = new SimpleDateFormat("yyyy.MM.dd")
9 def date = new Date()
10 def CMK_VERS = dateFormat.format(date)
11 def DAILY_DATA = '/var/jenkins_home/daily-data/' + BRANCH_NAME.replaceAll("/","-") + '/' + CMK_VERS
13 node {
14     docker.image('ubuntu-18.04-windows').inside('-u 0:0 --cap-add=SYS_ADMIN --network local-infra') {
15         stage('checkout sources') {
16            cleanWs()
17            sh "rm -rf ${DAILY_DATA}"
18            // Add line to delete folders older than 10 days
19            dir("${DAILY_DATA}/git") {
20                 checkout(scm)
21                 // Actually Dependent on Edition. For now set to Enterprise!
22                 sh 'rm -rf managed'
23                 println(CMK_VERS)
24                 sh "make NEW_VERSION=${CMK_VERS} setversion"
25             }
26         }
27     }
30 AGENT_LIST.each { AGENT ->
31     AGENT_BUILDS['build agent ' + AGENT] = {
32         node {
33             docker.image('agent-builder-' + AGENT).inside('-u 0:0 --cap-add=SYS_ADMIN --network local-infra') {
34                 stage('build agent ' + AGENT) {
35                     cleanWs()
36                     if (AGENT == 'linux-64bit') {
37                         AGENT = ''
38                     } else if (AGENT == 'linux-32bit') {
39                         AGENT = '-32'
40                     } else {
41                         AGENT = '-windows'
42                     }
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') {
47                         sh script: """
48                             cd agent-updater${AGENT}-dest/agents/windows/
49                             CHROOT_BUILD_DIR=${WORKSPACE}/agent-updater${AGENT}-dest \
50                                 CHROOT_NAME="agent-builder-windows" \
51                                 ./build-agent
52                         """
53                         sh script: """
54                             cd agent-updater${AGENT}-dest/enterprise/agents/windows/plugins
55                             CHROOT_BUILD_DIR=${WORKSPACE}/agent-updater${AGENT}-dest \
56                                 make
57                         """
58                         sh """
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
62                         """
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}' \
67                                 make
68                         """
69                         sh """
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
72                         """
73                     }
74                     sh "until umount agent-updater${AGENT}-dest; do sleep 1; done"
75                 }
76             }
77         }
78     }
80 parallel AGENT_BUILDS
82 node {
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"
90                 sh 'make dist'
91             }
92         }
93     }
96 DISTRO_LIST.each { DISTRO ->
97     PACKAGE_BUILDS[DISTRO] = {
98         node {
99             docker.image(DISTRO).inside('--cap-add=SYS_ADMIN -u 0:0 --network local-infra') {
100                 stage('build' + DISTRO + ' package') {
101                     cleanWs()
102                     sh 'mkdir work dest'
103                     sh "mount -t overlay overlay -o lowerdir=${DAILY_DATA}/git,upperdir=${WORKSPACE}/dest,workdir=${WORKSPACE}/work ${WORKSPACE}/dest"
104                     dir('dest') {
105                         sh """
106                             case $DISTRO in
107                                 centos*|rh*|sles*|opensuse*)
108                                     make -C omd rpm
109                                     ;;
110                                 cma*)
111                                     make -C cma
112                                     ;;
113                                 *)
114                                     DEBFULLNAME='Check_MK Team' DEBEMAIL='feedback@check-mk.org' make -C omd deb
115                                     ;;
116                             esac
117                         """
118                     }
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}"
124                 }
125             }
126         }
127     }
129 parallel PACKAGE_BUILDS