| chnyda | d66d6fa | 2017-06-22 09:34:43 +0200 | [diff] [blame] | 1 |  | 
 | 2 | /** | 
 | 3 |  *  Test salt models pipeline | 
 | 4 |  *  DEFAULT_GIT_REF | 
 | 5 |  *  DEFAULT_GIT_URL | 
 | 6 |  *  CREDENTIALS_ID | 
 | 7 |  *  EXTRA_FORMULAS | 
| Jakub Josef | 107769c | 2017-08-17 13:38:15 +0200 | [diff] [blame^] | 8 |  *  CLUSTER_NAME | 
| chnyda | d66d6fa | 2017-06-22 09:34:43 +0200 | [diff] [blame] | 9 |  *  NODE_TARGET | 
 | 10 |  *  SYSTEM_GIT_URL | 
 | 11 |  *  SYSTEM_GIT_REF | 
| Mykyta Karpin | c0758f3 | 2017-06-23 18:10:24 +0300 | [diff] [blame] | 12 |  *  FORMULAS_SOURCE | 
| chnyda | bb6d2a6 | 2017-07-31 14:09:16 +0200 | [diff] [blame] | 13 |  *  MAX_CPU_PER_JOB | 
| chnyda | d66d6fa | 2017-06-22 09:34:43 +0200 | [diff] [blame] | 14 |  */ | 
 | 15 |  | 
 | 16 | def common = new com.mirantis.mk.Common() | 
 | 17 | def gerrit = new com.mirantis.mk.Gerrit() | 
| chnyda | 4ed3c27 | 2017-06-22 14:50:09 +0200 | [diff] [blame] | 18 | def git = new com.mirantis.mk.Git() | 
| chnyda | c6092a2 | 2017-06-22 14:47:10 +0200 | [diff] [blame] | 19 | def ssh = new com.mirantis.mk.Ssh() | 
| chnyda | d66d6fa | 2017-06-22 09:34:43 +0200 | [diff] [blame] | 20 | def saltModelTesting = new com.mirantis.mk.SaltModelTesting() | 
 | 21 |  | 
 | 22 | def defaultGitRef = DEFAULT_GIT_REF | 
 | 23 | def defaultGitUrl = DEFAULT_GIT_URL | 
 | 24 |  | 
 | 25 | def checkouted = false | 
 | 26 | node("python") { | 
 | 27 |   try{ | 
 | 28 |     stage("checkout") { | 
 | 29 |       if(defaultGitRef != "" && defaultGitUrl != "") { | 
 | 30 |           checkouted = gerrit.gerritPatchsetCheckout(defaultGitUrl, defaultGitRef, "HEAD", CREDENTIALS_ID) | 
 | 31 |       } else { | 
 | 32 |         throw new Exception("Cannot checkout gerrit patchset, DEFAULT_GIT_URL or DEFAULT_GIT_REF is null") | 
 | 33 |       } | 
 | 34 |       if(checkouted) { | 
 | 35 |         if (fileExists('classes/system')) { | 
 | 36 |           if (SYSTEM_GIT_URL == "") { | 
 | 37 |             ssh.prepareSshAgentKey(CREDENTIALS_ID) | 
 | 38 |             dir('classes/system') { | 
 | 39 |               remoteUrl = git.getGitRemote() | 
 | 40 |               ssh.ensureKnownHosts(remoteUrl) | 
 | 41 |             } | 
 | 42 |             ssh.agentSh("git submodule init; git submodule sync; git submodule update --recursive") | 
 | 43 |           } else { | 
 | 44 |             dir('classes/system') { | 
 | 45 |               if (!gerrit.gerritPatchsetCheckout(SYSTEM_GIT_URL, SYSTEM_GIT_REF, "HEAD", CREDENTIALS_ID)) { | 
 | 46 |                 common.errorMsg("Failed to obtain system reclass with url: ${SYSTEM_GIT_URL} and ${SYSTEM_GIT_REF}") | 
 | 47 |               } | 
 | 48 |             } | 
 | 49 |           } | 
 | 50 |         } | 
 | 51 |       } | 
 | 52 |     } | 
 | 53 |  | 
 | 54 |     stage("test node") { | 
 | 55 |       if (checkouted) { | 
 | 56 |         def workspace = common.getWorkspace() | 
| Jakub Josef | 107769c | 2017-08-17 13:38:15 +0200 | [diff] [blame^] | 57 |         saltModelTesting.setupAndTestNode(NODE_TARGET, CLUSTER_NAME, EXTRA_FORMULAS, workspace, FORMULAS_SOURCE, FORMULAS_REVISION, MAX_CPU_PER_JOB.toInteger()) | 
| chnyda | d66d6fa | 2017-06-22 09:34:43 +0200 | [diff] [blame] | 58 |       } | 
 | 59 |     } | 
 | 60 |   } catch (Throwable e) { | 
 | 61 |      // If there was an error or exception thrown, the build failed | 
 | 62 |      currentBuild.result = "FAILURE" | 
 | 63 |      throw e | 
| chnyda | d66d6fa | 2017-06-22 09:34:43 +0200 | [diff] [blame] | 64 |   } | 
 | 65 | } |