1- import groovy.json.JsonSlurper
21
32/*
43** Variables.
54*/
65properties([buildDiscarder(logRotator(numToKeepStr : ' 50' ))])
76def serie = ' 21.04'
87def maintenanceBranch = " ${ serie} .x"
8+ def qaBranch = " dev-${ serie} "
9+
910if (env. BRANCH_NAME . startsWith(' release-' )) {
1011 env. BUILD = ' RELEASE'
1112} else if ((env. BRANCH_NAME == ' master' ) || (env. BRANCH_NAME == maintenanceBranch)) {
1213 env. BUILD = ' REFERENCE'
14+ } else if ((env. BRANCH_NAME == ' develop' ) || (env. BRANCH_NAME == qaBranch)) {
15+ env. BUILD = ' QA'
1316} else {
1417 env. BUILD = ' CI'
1518}
1619
1720/*
1821** Pipeline code.
1922*/
20- stage(' Source ' ) {
21- node {
23+ stage(' Deliver sources ' ) {
24+ node( " C++ " ) {
2225 sh ' setup_centreon_build.sh'
2326 dir(' centreon-broker' ) {
2427 checkout scm
@@ -31,9 +34,9 @@ stage('Source') {
3134}
3235
3336try {
34- stage(' Unit tests' ) {
35- parallel ' centos7' : {
36- node {
37+ stage(' Build // Unit tests // Packaging ' ) {
38+ parallel ' build centos7' : {
39+ node( " C++ " ) {
3740 sh ' setup_centreon_build.sh'
3841 sh " ./centreon-build/jobs/broker/${ serie} /mon-broker-unittest.sh centos7"
3942 step([
5053 }
5154 }
5255 },
53- ' centos8' : {
54- node {
56+ ' packaging centos7' : {
57+ node(" C++" ) {
58+ sh ' setup_centreon_build.sh'
59+ sh " ./centreon-build/jobs/broker/${ serie} /mon-broker-package.sh centos7"
60+ stash name : ' el7-rpms' , includes : " output/x86_64/*.rpm"
61+ }
62+ },
63+ ' build centos8' : {
64+ node(" C++" ) {
5565 sh ' setup_centreon_build.sh'
5666 sh " ./centreon-build/jobs/broker/${ serie} /mon-broker-unittest.sh centos8"
5767 step([
6474 ])
6575 }
6676 },
67- ' debian10' : {
68- node {
77+ ' packaging centos8' : {
78+ node(" C++" ) {
79+ sh ' setup_centreon_build.sh'
80+ sh " ./centreon-build/jobs/broker/${ serie} /mon-broker-package.sh centos8"
81+ stash name : ' el8-rpms' , includes : " output/x86_64/*.rpm"
82+ }
83+ },
84+ ' build debian10' : {
85+ node(" C++" ) {
6986 sh ' setup_centreon_build.sh'
7087 sh " ./centreon-build/jobs/broker/${ serie} /mon-broker-unittest.sh debian10"
7188 step([
@@ -77,16 +94,21 @@ try {
7794 tools : [[$class : ' GoogleTestType' , pattern : ' ut.xml' ]]
7895 ])
7996 }
97+ },
98+ ' packaging debian10' : {
99+ node(" C++" ) {
100+ sh ' setup_centreon_build.sh'
101+ sh " ./centreon-build/jobs/broker/${ serie} /mon-broker-package.sh debian10"
102+ }
80103 }
81104 if ((currentBuild. result ?: ' SUCCESS' ) != ' SUCCESS' ) {
82- error(' Unit tests stage failure .' );
105+ error(' Build // Unit tests // Packaging .' );
83106 }
84107 }
85108
86109 // sonarQube step to get qualityGate result
87110 stage(' Quality gate' ) {
88- node {
89- sleep 120
111+ node(" C++" ) {
90112 def qualityGate = waitForQualityGate()
91113 if (qualityGate. status != ' OK' ) {
92114 currentBuild. result = ' FAIL'
@@ -97,41 +119,11 @@ try {
97119 }
98120 }
99121
100- stage(' Package' ) {
101- parallel ' centos7' : {
102- node {
103- sh ' setup_centreon_build.sh'
104- sh " ./centreon-build/jobs/broker/${ serie} /mon-broker-package.sh centos7"
105- }
106- },
107- ' centos8' : {
108- node {
109- sh ' setup_centreon_build.sh'
110- sh " ./centreon-build/jobs/broker/${ serie} /mon-broker-package.sh centos8"
111- }
112- },
113- ' debian10' : {
114- node {
115- sh ' setup_centreon_build.sh'
116- sh " ./centreon-build/jobs/broker/${ serie} /mon-broker-package.sh debian10"
117- }
118- /*
119- },
120- 'debian10-armhf': {
121- node {
122- sh 'setup_centreon_build.sh'
123- sh "./centreon-build/jobs/broker/${serie}/mon-broker-package.sh debian10-armhf"
124- }
125- */
126- }
127- if ((currentBuild. result ?: ' SUCCESS' ) != ' SUCCESS' ) {
128- error(' Package stage failure.' );
129- }
130- }
131-
132- if ((env. BUILD == ' RELEASE' ) || (env. BUILD == ' REFERENCE' )) {
122+ if ((env. BUILD == ' RELEASE' ) || (env. BUILD == ' QA' )) {
133123 stage(' Delivery' ) {
134- node {
124+ node(" C++" ) {
125+ unstash ' el7-rpms'
126+ unstash ' el8-rpms'
135127 sh ' setup_centreon_build.sh'
136128 sh " ./centreon-build/jobs/broker/${ serie} /mon-broker-delivery.sh"
137129 }
0 commit comments