Skip to content
This repository was archived by the owner on Oct 6, 2023. It is now read-only.

Commit 6684b31

Browse files
committed
enh(ci): New packaging workflow and more // jobs (#647)
* deliver only for qa and release branches * remove old import * adding CI branches as delivery branches for testing purpose * editing fixme * removing fixme * comments for testing purpose * using specific c++ nodes * stashing rpms * packaging parallelised with build * keep only ten jobs in history * fixing parallel call for packaging Conflicts: Jenkinsfile
1 parent 8c58663 commit 6684b31

File tree

1 file changed

+39
-47
lines changed

1 file changed

+39
-47
lines changed

Jenkinsfile

Lines changed: 39 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
1-
import groovy.json.JsonSlurper
21

32
/*
43
** Variables.
54
*/
65
properties([buildDiscarder(logRotator(numToKeepStr: '50'))])
76
def serie = '21.04'
87
def maintenanceBranch = "${serie}.x"
8+
def qaBranch = "dev-${serie}"
9+
910
if (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

3336
try {
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([
@@ -50,8 +53,15 @@ try {
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([
@@ -64,8 +74,15 @@ try {
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

Comments
 (0)