blob: dad56eebc3b20dfc81021a34e6ebf9a84f54a7c6 [file] [log] [blame]
/**
* Gerrit gating pipeline
* CREDENTIALS_ID - Gerrit credentails ID
* JOBS_NAMESPACE - Gerrit gating jobs namespace (mk, contrail, ...)
*
**/
def common = new com.mirantis.mk.Common()
def gerrit = new com.mirantis.mk.Gerrit()
def ssh = new com.mirantis.mk.Ssh()
node("python") {
try{
stage("test") {
wrap([$class: 'AnsiColorBuildWrapper']) {
def testJob = String.format("test-%s-%s-latest", JOBS_NAMESPACE, GERRIT_PROJECT)
if (_jobExists(testJob)) {
common.infoMsg(String.format("Test job %s found, running", testJob))
build job: testJob, parameters: [
[$class: 'StringParameterValue', name: 'GERRIT_BRANCH', value: GERRIT_BRANCH],
[$class: 'StringParameterValue', name: 'GERRIT_NAME', value: GERRIT_NAME],
[$class: 'StringParameterValue', name: 'GERRIT_HOST', value: GERRIT_HOST],
[$class: 'StringParameterValue', name: 'GERRIT_PORT', value: GERRIT_PORT],
[$class: 'StringParameterValue', name: 'GERRIT_PROJECT', value: GERRIT_PROJECT],
[$class: 'StringParameterValue', name: 'GERRIT_REFSPEC', value: GERRIT_REFSPEC]
]
} else {
common.infoMsg(String.format("Test job %s not found", testJob))
}
}
}
stage("submit review"){
ssh.prepareSshAgentKey(CREDENTIALS_ID)
ssh.ensureKnownHosts(GERRIT_HOST)
ssh.agentSh(String.format("ssh -p 29418 %s@%s gerrit review --submit %s,%s", GERRIT_NAME, GERRIT_HOST, GERRIT_CHANGE_NUMBER, GERRIT_PATCHSET_NUMBER))
common.infoMsg(String.format("Gerrit review %s,%s submitted", GERRIT_CHANGE_NUMBER, GERRIT_PATCHSET_NUMBER))
}
} catch (Throwable e) {
// If there was an error or exception thrown, the build failed
currentBuild.result = "FAILURE"
throw e
} finally {
common.sendNotification(currentBuild.result,"",["slack"])
}
}
@NonCPS
def _jobExists(jobName){
return Jenkins.instance.items.find{it -> it.name.equals(jobName)}
}