| Jakub Josef | 8337931 | 2017-03-29 18:12:34 +0200 | [diff] [blame^] | 1 |  | 
 | 2 | /** | 
 | 3 |  *  Test salt models pipeline | 
 | 4 |  *  DEFAULT_GIT_REF | 
 | 5 |  *  DEFAULT_GIT_URL | 
 | 6 |  *  CREDENTIALS_ID | 
 | 7 |  */ | 
 | 8 |  | 
| Jakub Josef | c5a223a | 2017-03-01 14:40:08 +0100 | [diff] [blame] | 9 | def common = new com.mirantis.mk.Common() | 
 | 10 | def gerrit = new com.mirantis.mk.Gerrit() | 
| Filip Pytloun | 38005aa | 2017-03-06 10:26:38 +0100 | [diff] [blame] | 11 | def ssh = new com.mirantis.mk.Ssh() | 
 | 12 | def git = new com.mirantis.mk.Git() | 
| Jakub Josef | c5a223a | 2017-03-01 14:40:08 +0100 | [diff] [blame] | 13 |  | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 14 | def gerritRef | 
 | 15 | try { | 
 | 16 |   gerritRef = GERRIT_REFSPEC | 
 | 17 | } catch (MissingPropertyException e) { | 
 | 18 |   gerritRef = null | 
 | 19 | } | 
 | 20 |  | 
| Jakub Josef | 8337931 | 2017-03-29 18:12:34 +0200 | [diff] [blame^] | 21 | def defaultGitRef, defaultGitUrl | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 22 | try { | 
| Jakub Josef | 8337931 | 2017-03-29 18:12:34 +0200 | [diff] [blame^] | 23 |     defaultGitRef = DEFAULT_GIT_REF | 
 | 24 |     defaultGitUrl = DEFAULT_GIT_URL | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 25 | } catch (MissingPropertyException e) { | 
| Jakub Josef | 8337931 | 2017-03-29 18:12:34 +0200 | [diff] [blame^] | 26 |     defaultGitRef = null | 
 | 27 |     defaultGitUrl = null | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 28 | } | 
| Jakub Josef | 8337931 | 2017-03-29 18:12:34 +0200 | [diff] [blame^] | 29 | def checkouted = false | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 30 |  | 
| Jakub Josef | c5a223a | 2017-03-01 14:40:08 +0100 | [diff] [blame] | 31 | node("python") { | 
 | 32 |   try{ | 
 | 33 |     stage("checkout") { | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 34 |       if (gerritRef) { | 
| Jakub Josef | 8337931 | 2017-03-29 18:12:34 +0200 | [diff] [blame^] | 35 |         // job is triggered by Gerrit | 
 | 36 |         checkouted = gerrit.gerritPatchsetCheckout ([ | 
 | 37 |           credentialsId : CREDENTIALS_ID | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 38 |         ]) | 
| Jakub Josef | 8337931 | 2017-03-29 18:12:34 +0200 | [diff] [blame^] | 39 |       } else if(defaultGitRef && defaultGitUrl) { | 
 | 40 |           checkouted = gerrit.gerritPatchsetCheckout(defaultGitUrl, defaultGitRef, "master", CREDENTIALS_ID) | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 41 |       } | 
| Jakub Josef | 8337931 | 2017-03-29 18:12:34 +0200 | [diff] [blame^] | 42 |       if(checkouted){ | 
 | 43 |         if (fileExists('classes/system')) { | 
 | 44 |           ssh.prepareSshAgentKey(CREDENTIALS_ID) | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 45 |           dir('classes/system') { | 
| Jakub Josef | 8337931 | 2017-03-29 18:12:34 +0200 | [diff] [blame^] | 46 |             remoteUrl = git.getGitRemote() | 
 | 47 |             ssh.ensureKnownHosts(remoteUrl) | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 48 |           } | 
| Jakub Josef | 8337931 | 2017-03-29 18:12:34 +0200 | [diff] [blame^] | 49 |           ssh.agentSh("git submodule init; git submodule sync; git submodule update --recursive") | 
| Filip Pytloun | 19376a8 | 2017-03-07 12:29:00 +0100 | [diff] [blame] | 50 |         } | 
| Jakub Josef | 8337931 | 2017-03-29 18:12:34 +0200 | [diff] [blame^] | 51 |       }else{ | 
 | 52 |         common.errorMsg("Cannot checkout gerrit patchset, GERRIT_REFSPEC and DEFAULT_GIT_REF is null") | 
| Filip Pytloun | 38005aa | 2017-03-06 10:26:38 +0100 | [diff] [blame] | 53 |       } | 
| Jakub Josef | c5a223a | 2017-03-01 14:40:08 +0100 | [diff] [blame] | 54 |     } | 
 | 55 |     stage("test") { | 
| Jakub Josef | 8337931 | 2017-03-29 18:12:34 +0200 | [diff] [blame^] | 56 |       if(checkouted){ | 
 | 57 |         timeout(1440) { | 
 | 58 |           wrap([$class: 'AnsiColorBuildWrapper']) { | 
 | 59 |             sh("make test") | 
 | 60 |           } | 
| Filip Pytloun | 3f3829d | 2017-03-06 12:13:14 +0100 | [diff] [blame] | 61 |         } | 
| Jakub Josef | c5a223a | 2017-03-01 14:40:08 +0100 | [diff] [blame] | 62 |       } | 
 | 63 |     } | 
 | 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"]) | 
 | 70 |   } | 
| Filip Pytloun | 38005aa | 2017-03-06 10:26:38 +0100 | [diff] [blame] | 71 | } |