@@ -44,6 +44,33 @@ void runOVFStagingStart(String SERVER_VERSION, PMM_QA_GIT_BRANCH) {
44
44
env. ADMIN_PASSWORD = " admin"
45
45
}
46
46
47
+ def runOpenshiftClusterCreate (String OPENSHIFT_VERSION , DOCKER_VERSION , ADMIN_PASSWORD ) {
48
+ def clusterName = " nightly-test-${ env.BUILD_NUMBER} "
49
+ def pmmImageRepo = DOCKER_VERSION . split(" :" )[0 ]
50
+ def pmmImageTag = DOCKER_VERSION . split(" :" )[1 ]
51
+
52
+ clusterCreateJob = build job : ' openshift-cluster-create' , parameters : [
53
+ string(name : ' CLUSTER_NAME' , value : clusterName),
54
+ string(name : ' OPENSHIFT_VERSION' , value : OPENSHIFT_VERSION ),
55
+ booleanParam(name : ' DEPLOY_PMM' , value : true ),
56
+ string(name : ' TEAM_NAME' , value : ' pmm' ),
57
+ string(name : ' PRODUCT_TAG' , value : ' pmm' ),
58
+ string(name : ' PMM_ADMIN_PASSWORD' , value : ADMIN_PASSWORD ),
59
+ string(name : ' PMM_IMAGE_REPOSITORY' , value : pmmImageRepo),
60
+ string(name : ' PMM_IMAGE_TAG' , value : pmmImageTag),
61
+ ]
62
+
63
+ def pmmAddress = clusterCreateJob. buildVariables. PMM_URL
64
+ def pmmHostname = pmmAddress. split(" //" )[1 ]
65
+
66
+ env. VM_IP = pmmHostname
67
+ env. VM_NAME = clusterCreateJob. buildVariables. VM_NAME
68
+ env. WORK_DIR = clusterCreateJob. buildVariables. WORK_DIR
69
+ env. FINAL_CLUSTER_NAME = clusterCreateJob. buildVariables. FINAL_CLUSTER_NAME
70
+ env. PMM_URL = " https://admin:${ ADMIN_PASSWORD} @${ pmmHostname} "
71
+ env. PMM_UI_URL = " ${ pmmAddress} /"
72
+ }
73
+
47
74
void runAMIStagingStart (String AMI_ID ) {
48
75
amiStagingJob = build job : ' pmm3-ami-staging-start' , parameters : [
49
76
string(name : ' AMI_ID' , value : AMI_ID )
@@ -191,7 +218,7 @@ pipeline {
191
218
description : ' Tag/Branch for pmm-ui-tests repository' ,
192
219
name : ' GIT_BRANCH' )
193
220
choice(
194
- choices : [' docker' , ' ovf' , ' ami' ],
221
+ choices : [' docker' , ' ovf' , ' ami' , ' helm ' ],
195
222
description : " PMM Server installation type." ,
196
223
name : ' SERVER_TYPE' )
197
224
string(
@@ -218,6 +245,10 @@ pipeline {
218
245
defaultValue : ' v3' ,
219
246
description : ' Tag/Branch for pmm-qa repository' ,
220
247
name : ' PMM_QA_GIT_BRANCH' )
248
+ choice(
249
+ choices : [' latest' , ' 4.19.6' , ' 4.19.5' , ' 4.19.4' , ' 4.19.3' , ' 4.19.2' , ' 4.18.9' , ' 4.18.8' , ' 4.18.7' , ' 4.18.6' , ' 4.18.5' , ' 4.17.9' , ' 4.17.8' , ' 4.17.7' , ' 4.17.6' , ' 4.17.5' , ' 4.16.9' , ' 4.16.8' , ' 4.16.7' , ' 4.16.6' , ' 4.16.5' ],
250
+ description : ' OpenShift version to install (specific version or channel)' ,
251
+ name : ' OPENSHIFT_VERSION' )
221
252
choice(
222
253
choices : [' 8.0' , ' 8.4' , ' 5.7' ],
223
254
description : ' Percona XtraDB Cluster version' ,
@@ -262,6 +293,9 @@ pipeline {
262
293
stages {
263
294
stage(' Prepare' ) {
264
295
steps {
296
+ script {
297
+ currentBuild. description = " ${ env.SERVER_TYPE} Server: ${ env.DOCKER_VERSION} . Client: ${ env.CLIENT_VERSION} "
298
+ }
265
299
// clean up workspace and fetch pmm-ui-tests repository
266
300
deleteDir()
267
301
git poll : false , branch : GIT_BRANCH , url : ' https://github.com/percona/pmm-ui-tests.git'
@@ -301,6 +335,14 @@ pipeline {
301
335
runAMIStagingStart(DOCKER_VERSION )
302
336
}
303
337
}
338
+ stage(' Setup Helm Server Instance' ) {
339
+ when {
340
+ expression { env. SERVER_TYPE == " helm" }
341
+ }
342
+ steps {
343
+ runOpenshiftClusterCreate(OPENSHIFT_VERSION , DOCKER_VERSION , ADMIN_PASSWORD )
344
+ }
345
+ }
304
346
}
305
347
}
306
348
stage(' Sanity check' ) {
@@ -329,7 +371,7 @@ pipeline {
329
371
}
330
372
stage(' ps single and mongo pss client' ) {
331
373
steps {
332
- runStagingClient(DOCKER_VERSION , CLIENT_VERSION , ' --database ps --database psmdb,SETUP_TYPE=pss' , ' yes' , env. VM_IP , ' mysql-node' , ENABLE_PULL_MODE , PXC_VERSION , PS_VERSION , MS_VERSION , PGSQL_VERSION , PDPGSQL_VERSION , MD_VERSION , PSMDB_VERSION , MODB_VERSION , QUERY_SOURCE , QA_INTEGRATION_GIT_BRANCH , ADMIN_PASSWORD )
374
+ runStagingClient(DOCKER_VERSION , CLIENT_VERSION , ' --database ps,QUERY_SOURCE=slowlog --database psmdb,SETUP_TYPE=pss' , ' yes' , env. VM_IP , ' mysql-node' , ENABLE_PULL_MODE , PXC_VERSION , PS_VERSION , MS_VERSION , PGSQL_VERSION , PDPGSQL_VERSION , MD_VERSION , PSMDB_VERSION , MODB_VERSION , QUERY_SOURCE , QA_INTEGRATION_GIT_BRANCH , ADMIN_PASSWORD )
333
375
}
334
376
}
335
377
stage(' pdpgsql, pgsql and pdpgsql patroni client' ) {
@@ -436,21 +478,6 @@ pipeline {
436
478
post {
437
479
always {
438
480
// stop staging
439
- sh '''
440
- curl --insecure ${PMM_URL}/logs.zip --output logs.zip || true
441
- '''
442
- script {
443
- if (currentBuild. result == null || currentBuild. result == ' SUCCESS' ) {
444
- junit ' tests/output/*.xml'
445
- slackSend botUser : true , channel : ' #pmm-notifications' , color : ' #00FF00' , message : " [${ JOB_NAME} ]: build finished - ${ BUILD_URL} "
446
- archiveArtifacts artifacts : ' logs.zip'
447
- } else {
448
- junit ' tests/output/*.xml'
449
- slackSend botUser : true , channel : ' #pmm-notifications' , color : ' #FF0000' , message : " [${ JOB_NAME} ]: build ${ currentBuild.result} - ${ BUILD_URL} "
450
- archiveArtifacts artifacts : ' logs.zip'
451
- archiveArtifacts artifacts : ' tests/output/*.png'
452
- }
453
- }
454
481
script {
455
482
if (env. SERVER_TYPE == " ovf" ) {
456
483
ovfStagingStopJob = build job : ' pmm-ovf-staging-stop' , parameters : [
@@ -462,6 +489,12 @@ pipeline {
462
489
string(name : ' AMI_ID' , value : env. AMI_INSTANCE_ID ),
463
490
]
464
491
}
492
+ if (env. SERVER_TYPE == " helm" ) {
493
+ build job : ' openshift-cluster-destroy' , parameters : [
494
+ string(name : ' CLUSTER_NAME' , value : env. FINAL_CLUSTER_NAME ),
495
+ string(name : ' DESTROY_REASON' , value : ' testing-complete' ),
496
+ ]
497
+ }
465
498
if (env. VM_NAME && env. SERVER_TYPE == " docker" )
466
499
{
467
500
destroyStaging(VM_NAME )
@@ -487,7 +520,24 @@ pipeline {
487
520
destroyStaging(VM_CLIENT_NAME_PS_GR )
488
521
}
489
522
}
490
- deleteDir()
523
+ sh '''
524
+ curl --insecure ${PMM_URL}/logs.zip --output logs.zip || true
525
+ '''
526
+ }
527
+ success {
528
+ script {
529
+ junit ' tests/output/*.xml'
530
+ slackSend botUser : true , channel : ' #pmm-notifications' , color : ' #00FF00' , message : " [${ JOB_NAME} ]: build finished - ${ BUILD_URL} "
531
+ archiveArtifacts artifacts : ' logs.zip'
532
+ }
533
+ }
534
+ failure {
535
+ script {
536
+ junit ' tests/output/*.xml'
537
+ slackSend botUser : true , channel : ' #pmm-notifications' , color : ' #FF0000' , message : " [${ JOB_NAME} ]: build ${ currentBuild.result} - ${ BUILD_URL} "
538
+ archiveArtifacts artifacts : ' logs.zip'
539
+ archiveArtifacts artifacts : ' tests/output/*.png'
540
+ }
491
541
}
492
542
}
493
543
}
0 commit comments