@Library('corda-shared-build-pipeline-steps') import static com.r3.build.BuildControl.killAllExistingBuildsForJob killAllExistingBuildsForJob(env.JOB_NAME, env.BUILD_NUMBER.toInteger()) pipeline { agent { label 'k8s' } options { timestamps() overrideIndexTriggers(false) timeout(time: 3, unit: 'HOURS') } triggers { issueCommentTrigger('.*smoke tests.*') } environment { EXECUTOR_NUMBER = "${env.EXECUTOR_NUMBER}" } stages { stage('Corda Smoke Tests') { steps { script { if (currentBuildTriggeredByComment()) { stage('Run Smoke Tests') { script { pullRequest.createStatus(status: 'pending', context: 'continuous-integration/jenkins/pr-merge/smokeTest', description: 'Smoke Tests Running', targetUrl: "${env.JOB_URL}") } withCredentials([string(credentialsId: 'container_reg_passwd', variable: 'DOCKER_PUSH_PWD')]) { sh "./gradlew " + "-Dkubenetize=true " + "-Ddocker.push.password=\"\${DOCKER_PUSH_PWD}\" " + "-Ddocker.work.dir=\"/tmp/\${EXECUTOR_NUMBER}\" " + " clean allParallelSmokeTest --stacktrace" } } } } } } } post { always { script { if (currentBuildTriggeredByComment()) { archiveArtifacts artifacts: '**/pod-logs/**/*.log', fingerprint: false junit testResults: '**/build/test-results-xml/**/*.xml', keepLongStdio: true } } } success { script { if (currentBuildTriggeredByComment()) { pullRequest.createStatus(status: 'success', context: 'continuous-integration/jenkins/pr-merge/smokeTest', description: 'Smoke Tests Passed', targetUrl: "${env.BUILD_URL}testResults") } } } failure { script { if (currentBuildTriggeredByComment()) { pullRequest.createStatus(status: 'failure', context: 'continuous-integration/jenkins/pr-merge/smokeTest', description: 'Smoke Tests Failed', targetUrl: "${env.BUILD_URL}testResults") } } } cleanup { deleteDir() /* clean up our workspace */ } } } @NonCPS def currentBuildTriggeredByComment() { def triggerCause = currentBuild.rawBuild.getCause(org.jenkinsci.plugins.pipeline.github.trigger.IssueCommentCause) if (triggerCause) { echo("Build was started by ${triggerCause.userLogin}, who wrote: " + "\"${triggerCause.comment}\", which matches the " + "\"${triggerCause.triggerPattern}\" trigger pattern.") } else { echo('Build was not started by a trigger') } return triggerCause != null }