| Filip Pytloun | fcce97c | 2017-03-07 14:06:07 +0100 | [diff] [blame] | 1 | def gerrit = new com.mirantis.mk.Gerrit() | 
| Filip Pytloun | 6a05730 | 2017-03-07 16:33:30 +0100 | [diff] [blame] | 2 | def common = new com.mirantis.mk.Common() | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 3 |  | 
| Filip Pytloun | fcce97c | 2017-03-07 14:06:07 +0100 | [diff] [blame] | 4 | def gerritCredentials | 
|  | 5 | try { | 
|  | 6 | gerritCredentials = CREDENTIALS_ID | 
|  | 7 | } catch (MissingPropertyException e) { | 
|  | 8 | gerritCredentials = "gerrit" | 
|  | 9 | } | 
|  | 10 |  | 
| Jakub Josef | 4612c5d | 2017-03-30 16:04:26 +0200 | [diff] [blame^] | 11 | def gerritRef | 
|  | 12 | try { | 
|  | 13 | gerritRef = GERRIT_REFSPEC | 
|  | 14 | } catch (MissingPropertyException e) { | 
|  | 15 | gerritRef = null | 
|  | 16 | } | 
|  | 17 |  | 
|  | 18 | def defaultGitRef, defaultGitUrl | 
|  | 19 | try { | 
|  | 20 | defaultGitRef = DEFAULT_GIT_REF | 
|  | 21 | defaultGitUrl = DEFAULT_GIT_URL | 
|  | 22 | } catch (MissingPropertyException e) { | 
|  | 23 | defaultGitRef = null | 
|  | 24 | defaultGitUrl = null | 
|  | 25 | } | 
|  | 26 | def checkouted = false | 
|  | 27 |  | 
| Filip Pytloun | fcce97c | 2017-03-07 14:06:07 +0100 | [diff] [blame] | 28 | try { | 
|  | 29 | stage("Checkout") { | 
|  | 30 | node() { | 
| Jakub Josef | 4612c5d | 2017-03-30 16:04:26 +0200 | [diff] [blame^] | 31 | 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 | 
|  | 38 | defaultGitUrl = "${GERRIT_SCHEME}://${GERRIT_NAME}@${GERRIT_HOST}:${GERRIT_PORT}/${GERRIT_PROJECT}.git" | 
|  | 39 | } else if(defaultGitRef && defaultGitUrl) { | 
|  | 40 | checkouted = gerrit.gerritPatchsetCheckout(defaultGitUrl, defaultGitRef, "HEAD", gerritCredentials) | 
|  | 41 | } | 
| Filip Pytloun | 840a084 | 2017-03-07 13:54:23 +0100 | [diff] [blame] | 42 | } | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 43 | } | 
| Filip Pytloun | fcce97c | 2017-03-07 14:06:07 +0100 | [diff] [blame] | 44 |  | 
|  | 45 | stage("Test") { | 
| Jakub Josef | 4612c5d | 2017-03-30 16:04:26 +0200 | [diff] [blame^] | 46 | 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] | 
|  | 51 | branches["${cluster}"] = { | 
|  | 52 | build job: "test-salt-model-${cluster}", parameters: [ | 
|  | 53 | [$class: 'StringParameterValue', name: 'DEFAULT_GIT_URL', value: defaultGitUrl], | 
|  | 54 | [$class: 'StringParameterValue', name: 'DEFAULT_GIT_REF', value: defaultGitRef] | 
|  | 55 | ] | 
|  | 56 | } | 
|  | 57 | } | 
|  | 58 | parallel branches | 
|  | 59 | }else{ | 
|  | 60 | common.errorMsg("Cannot checkout gerrit patchset, GERRIT_REFSPEC and DEFAULT_GIT_REF is null") | 
| Filip Pytloun | fcce97c | 2017-03-07 14:06:07 +0100 | [diff] [blame] | 61 | } | 
| Filip Pytloun | fcce97c | 2017-03-07 14:06:07 +0100 | [diff] [blame] | 62 | } | 
|  | 63 | } catch (Throwable e) { | 
|  | 64 | // If there was an error or exception thrown, the build failed | 
|  | 65 | currentBuild.result = "FAILURE" | 
|  | 66 | throw e | 
|  | 67 | } finally { | 
|  | 68 | common.sendNotification(currentBuild.result,"",["slack"]) | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 69 | } |