6
6
import groovy.json.JsonSlurperClassic
7
7
8
8
emailList = ' vitaly.korolev@progress.com, sumanth.ravipati@progress.com, peng.zhou@progress.com, fayez.saliba@progress.com, barkha.choithani@progress.com, romain.winieski@progress.com'
9
- emailSecList = ' Rangan.Doreswamy@progress.com, Mahalakshmi.Srinivasan@progress.com'
9
+ emailSecList = ' Mahalakshmi.Srinivasan@progress.com'
10
10
gitCredID = ' marklogic-builder-github'
11
11
JIRA_ID = ' '
12
12
JIRA_ID_PATTERN = / (?i)(MLE)-\d {3,6}/
@@ -39,6 +39,14 @@ void preBuildCheck() {
39
39
40
40
// our VMs sometime disable bridge traffic. this should help to restore it.
41
41
sh ' sudo sh -c "echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables"'
42
+
43
+ // install local version of golangci-lint and gotestsum
44
+ sh '''
45
+ curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /space/go/bin v1.50.0
46
+ wget https://github.com/gotestyourself/gotestsum/releases/download/v1.12.0/gotestsum_1.12.0_linux_amd64.tar.gz -O gotestsum.tar.gz
47
+ mkdir -p /space/go/bin/
48
+ tar -xf gotestsum.tar.gz -C /space/go/bin/ gotestsum
49
+ '''
42
50
}
43
51
44
52
@NonCPS
@@ -95,7 +103,7 @@ def getReviewState() {
95
103
return reviewState
96
104
}
97
105
98
- void resultNotification (message ) {
106
+ void resultNotification (status ) {
99
107
def author, authorEmail, emailList
100
108
if (env. CHANGE_AUTHOR ) {
101
109
author = env. CHANGE_AUTHOR . toString(). trim(). toLowerCase()
@@ -109,11 +117,11 @@ void resultNotification(message) {
109
117
jira_email_body = " ${ email_body} <br><br><b>Jira URL: </b><br><a href='${ jira_link} '>${ jira_link} </a>"
110
118
111
119
if (JIRA_ID ) {
112
- def comment = [ body : " Jenkins pipeline build result: ${ message } " ]
120
+ def comment = [ body : " Jenkins pipeline build result: ${ status } " ]
113
121
jiraAddComment site : ' JIRA' , idOrKey : JIRA_ID , failOnError : false , input : comment
114
- mail charset : ' UTF-8' , mimeType : ' text/html' , to : " ${ emailList} " , body : " ${ jira_email_body} " , subject : " ${ message } : ${ env.JOB_NAME} #${ env.BUILD_NUMBER} - ${ JIRA_ID} "
122
+ mail charset : ' UTF-8' , mimeType : ' text/html' , to : " ${ emailList} " , body : " ${ jira_email_body} " , subject : " 🥷 ${ status } : ${ env.JOB_NAME} #${ env.BUILD_NUMBER} - ${ JIRA_ID} "
115
123
} else {
116
- mail charset : ' UTF-8' , mimeType : ' text/html' , to : " ${ emailList} " , body : " ${ email_body} " , subject : " ${ message } : ${ env.JOB_NAME} #${ env.BUILD_NUMBER} "
124
+ mail charset : ' UTF-8' , mimeType : ' text/html' , to : " ${ emailList} " , body : " ${ email_body} " , subject : " 🥷 ${ status } : ${ env.JOB_NAME} #${ env.BUILD_NUMBER} "
117
125
}
118
126
}
119
127
@@ -139,6 +147,10 @@ void imageScan() {
139
147
}
140
148
141
149
sh ''' rm -f dep-image-scan.txt'''
150
+
151
+ // trigger BlackDuck scan
152
+ def imageList = readFile(file : ' helm_image.list' ). trim()
153
+ build job : ' securityscans/Blackduck/KubeNinjas/kubernetes-helm' , wait : false , parameters : [ string(name : ' branch' , value : " ${ env.BRANCH_NAME} " ), string(name : ' CONTAINER_IMAGES' , value : " ${ imageList} " ) ]
142
154
}
143
155
144
156
void publishTestResults () {
@@ -158,18 +170,23 @@ pipeline {
158
170
skipStagesAfterUnstable()
159
171
}
160
172
triggers {
161
- parameterizedCron( env. BRANCH_NAME == ' develop' ? ''' 00 04 * * * % IMAGE_SCAN=true;HELM_UPGRADE_TESTS=true;HC_TESTS=true''' : ' ' )
173
+ parameterizedCron( env. BRANCH_NAME == ' develop' ? ''' 00 04 * * * % IMAGE_SCAN=true;HELM_UPGRADE_TESTS=true;HC_TESTS=true
174
+ 00 04 * * * % dockerImageType=ubi''' : ' ' )
162
175
}
163
176
environment {
164
177
dockerRegistry = ' ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com'
165
178
dockerRepository = " ${ dockerRegistry} /marklogic/marklogic-server-${ params.dockerImageType} "
179
+ PATH = " /space/go/bin:${ env.PATH} "
180
+ MINIKUBE_HOME = " /space/minikube/"
181
+ KUBECONFIG = " /space/.kube-config"
182
+ GOPATH = " /space/go"
166
183
}
167
184
168
185
parameters {
169
- choice(name : ' dockerImageType' , choices : ' ubi-rootless\n ubi\n centos ' , description : ' Platform type for Docker image' )
186
+ choice(name : ' dockerImageType' , choices : ' ubi-rootless\n ubi\n ubi9-rootless \n ubi9 ' , description : ' Platform type for Docker image' )
170
187
string(name : ' dockerVersion' , defaultValue : ' latest-11' , description : ' Docker tag to use for tests. (e.g. 11.2.nightly-ubi-rootless-1.1.2) Has to correspond with dockerImageType.' , trim : true )
171
188
string(name : ' prevDockerVersion' , defaultValue : ' latest-10' , description : ' Previous Docker version for MarkLogic upgrade tests. (e.g. 10.0-10.2-centos-1.1.2) Has to correspond with dockerImageType.' , trim : true )
172
- choice(name : ' K8_VERSION' , choices : ' v1.28.10 \n v1.29.5 \n v1.27.14 \n v1.26 .15\n v1.25. 16\n v1.24.17 ' , description : ' Test Kubernetes version.' )
189
+ choice(name : ' K8_VERSION' , choices : ' v1.31.7 \n v1.32.3 \n v1.30.11 \n v1.29 .15\n v1.28.15 \n v1.27. 16\n v1.26.15 \n v1.25.16 ' , description : ' Test Kubernetes version.' )
173
190
booleanParam(name : ' KUBERNETES_TESTS' , defaultValue : true , description : ' Run kubernetes tests' )
174
191
string(name : ' KUBERNETES_TEST_SELECTION' , defaultValue : ' ...' , description : ' Pick one test to run. (e.g. tls_test.go) ... will run all tests.' , trim : true )
175
192
booleanParam(name : ' HC_TESTS' , defaultValue : false , description : ' Run Hub Central E2E UI tests (takes about 3 hours)' )
@@ -207,7 +224,7 @@ pipeline {
207
224
}
208
225
steps {
209
226
sh """
210
- export MINIKUBE_HOME=/space; export KUBECONFIG=/space/.kube-config; export GOPATH=/space/go; make test dockerImage=${ dockerRepository} :${ dockerVersion} prevDockerImage=${ dockerRepository} :${ prevDockerVersion} kubernetesVersion=${ params.K8_VERSION} saveOutput=true minikubeMemory=20gb testSelection=${ params.KUBERNETES_TEST_SELECTION}
227
+ make test dockerImage=${ dockerRepository} :${ dockerVersion} prevDockerImage=${ dockerRepository} :${ prevDockerVersion} kubernetesVersion=${ params.K8_VERSION} saveOutput=true minikubeMemory=20gb testSelection=${ params.KUBERNETES_TEST_SELECTION}
211
228
"""
212
229
}
213
230
}
@@ -217,7 +234,7 @@ pipeline {
217
234
}
218
235
steps {
219
236
sh """
220
- export MINIKUBE_HOME=/space; export KUBECONFIG=/space/.kube-config; export GOPATH=/space/go; export upgradeTest=true; export initialChartVersion=${ params.InitialChartVersion} ; make upgrade-test dockerImage=${ dockerRepository} :${ dockerVersion} prevDockerImage=${ dockerRepository} :${ prevDockerVersion} kubernetesVersion=${ params.K8_VERSION} saveOutput=true minikubeMemory=20gb
237
+ export upgradeTest=true; export initialChartVersion=${ params.InitialChartVersion} ; make upgrade-test dockerImage=${ dockerRepository} :${ dockerVersion} prevDockerImage=${ dockerRepository} :${ prevDockerVersion} kubernetesVersion=${ params.K8_VERSION} saveOutput=true minikubeMemory=20gb
221
238
"""
222
239
}
223
240
}
@@ -227,7 +244,7 @@ pipeline {
227
244
}
228
245
steps {
229
246
sh """
230
- export MINIKUBE_HOME=/space; export KUBECONFIG=/space/.kube-config; export GOPATH=/space/go; make hc-test dockerImage=${ dockerRepository} :${ dockerVersion} kubernetesVersion=${ params.K8_VERSION} minikubeMemory=20gb
247
+ make hc-test dockerImage=${ dockerRepository} :${ dockerVersion} kubernetesVersion=${ params.K8_VERSION} minikubeMemory=20gb
231
248
"""
232
249
}
233
250
}
@@ -238,23 +255,26 @@ pipeline {
238
255
publishTestResults()
239
256
sh '''
240
257
sudo sysctl -w vm.nr_hugepages=0
241
- export MINIKUBE_HOME=/space; export KUBECONFIG=/space/.kube-config; export GOPATH=/space/go; minikube delete --all --purge
242
- docker rm -f $(docker ps -a -q) || true
243
- docker system prune --force --filter "until=720h"
244
- docker volume prune --force
245
- docker image prune --force --all
246
- sudo rm -rf /space/. minikube /space/go /space/.kube-config
258
+ minikube delete --all --purge
259
+ docker stop $(docker ps -a -q) || true
260
+ docker system prune --force --all
261
+ docker volume prune --force --all
262
+ docker system df
263
+ sudo rm -rf /space/minikube/ /space/go /space/.kube-config
247
264
'''
248
265
sh " rm -rf $WORKSPACE /test/test_results/"
249
266
}
250
267
success {
251
- resultNotification(' BUILD SUCCESS ✅ ' )
268
+ resultNotification(' ✅ Success ' )
252
269
}
253
270
failure {
254
- resultNotification(' BUILD ERROR ❌ ' )
271
+ resultNotification(' ❌ Failure ' )
255
272
}
256
273
unstable {
257
- resultNotification(' BUILD UNSTABLE ❌' )
274
+ resultNotification(' ⚠️ Unstable' )
275
+ }
276
+ aborted {
277
+ resultNotification(' 🚫 Aborted' )
258
278
}
259
279
}
260
280
}
0 commit comments