blob: c01fe62015e35b7fbc9380dca9dd9b17923b62ed [file] [log] [blame]
Filip Pytlounfcce97c2017-03-07 14:06:07 +01001def gerrit = new com.mirantis.mk.Gerrit()
Filip Pytloun6a057302017-03-07 16:33:30 +01002def common = new com.mirantis.mk.Common()
Filip Pytloun19376a82017-03-07 12:29:00 +01003
Filip Pytlounfcce97c2017-03-07 14:06:07 +01004def gerritCredentials
5try {
6 gerritCredentials = CREDENTIALS_ID
7} catch (MissingPropertyException e) {
8 gerritCredentials = "gerrit"
9}
10
Jakub Josef4612c5d2017-03-30 16:04:26 +020011def gerritRef
12try {
13 gerritRef = GERRIT_REFSPEC
14} catch (MissingPropertyException e) {
15 gerritRef = null
16}
17
18def defaultGitRef, defaultGitUrl
19try {
20 defaultGitRef = DEFAULT_GIT_REF
21 defaultGitUrl = DEFAULT_GIT_URL
22} catch (MissingPropertyException e) {
23 defaultGitRef = null
24 defaultGitUrl = null
25}
26def checkouted = false
27
Filip Pytlounfcce97c2017-03-07 14:06:07 +010028try {
29 stage("Checkout") {
30 node() {
Jakub Josef4612c5d2017-03-30 16:04:26 +020031 if (gerritRef) {
32 // job is triggered by Gerrit
33 checkouted = gerrit.gerritPatchsetCheckout ([
34 credentialsId : gerritCredentials
35 ])
36 // change defaultGit variables if job triggered from Gerrit
37 defaultGitRef = GERRIT_REFSPEC
Jakub Josef63326772017-03-30 16:38:11 +020038 defaultGitUrl = "${GERRIT_SCHEME}://${GERRIT_NAME}@${GERRIT_HOST}:${GERRIT_PORT}/${GERRIT_PROJECT}"
Jakub Josef4612c5d2017-03-30 16:04:26 +020039 } else if(defaultGitRef && defaultGitUrl) {
40 checkouted = gerrit.gerritPatchsetCheckout(defaultGitUrl, defaultGitRef, "HEAD", gerritCredentials)
41 }
Filip Pytloun840a0842017-03-07 13:54:23 +010042 }
Filip Pytloun19376a82017-03-07 12:29:00 +010043 }
Filip Pytlounfcce97c2017-03-07 14:06:07 +010044
45 stage("Test") {
Jakub Josef4612c5d2017-03-30 16:04:26 +020046 if(checkouted){
47 def branches = [:]
48 def testModels = TEST_MODELS.split(',')
49 for (int i = 0; i < testModels.size(); i++) {
50 def cluster = testModels[i]
Jakub Josefb3f570b2017-03-30 17:02:16 +020051 def clusterGitUrl = defaultGitUrl.substring(0, defaultGitUrl.lastIndexOf("/") + 1) + cluster
Jakub Josef4612c5d2017-03-30 16:04:26 +020052 branches["${cluster}"] = {
53 build job: "test-salt-model-${cluster}", parameters: [
Jakub Josefb3f570b2017-03-30 17:02:16 +020054 [$class: 'StringParameterValue', name: 'DEFAULT_GIT_URL', value: clusterGitUrl],
Jakub Josef4612c5d2017-03-30 16:04:26 +020055 [$class: 'StringParameterValue', name: 'DEFAULT_GIT_REF', value: defaultGitRef]
56 ]
57 }
58 }
59 parallel branches
60 }else{
61 common.errorMsg("Cannot checkout gerrit patchset, GERRIT_REFSPEC and DEFAULT_GIT_REF is null")
Filip Pytlounfcce97c2017-03-07 14:06:07 +010062 }
Filip Pytlounfcce97c2017-03-07 14:06:07 +010063 }
64} catch (Throwable e) {
65 // If there was an error or exception thrown, the build failed
66 currentBuild.result = "FAILURE"
67 throw e
68} finally {
69 common.sendNotification(currentBuild.result,"",["slack"])
Filip Pytloun19376a82017-03-07 12:29:00 +010070}