blob: bd9dcb8d8082b10f8e1871654b7f63f6fb9494a7 [file] [log] [blame]
def common = new com.mirantis.mk.Common()
def git = new com.mirantis.mk.Git()
stage("Mirror") {
timeout(time: 12, unit: 'HOURS') {
node() {
try{
def branches = BRANCHES.tokenize(',')
def pollBranches = []
for (i=0; i < branches.size(); i++) {
pollBranches.add([name:branches[i]])
}
dir("target") {
try{
checkout changelog: true, poll: true,
scm: [$class: 'GitSCM', branches: pollBranches, doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'CleanCheckout']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: CREDENTIALS_ID, url: TARGET_URL]]]
} catch(hudson.AbortException e){
if(e.message.trim().equals("Couldn't find any revision to build. Verify the repository and branch configuration for this job.")){
common.warningMsg("Warning: Cannot checkout target repo source repo is empty")
} else {
throw e
}
}
}
dir("source") {
try{
checkout changelog: true, poll: true,
scm: [$class: 'GitSCM', branches: pollBranches, doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'CleanCheckout']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: CREDENTIALS_ID, url: SOURCE_URL]]]
} catch(hudson.AbortException e){
if(e.message.trim().equals("Couldn't find any revision to build. Verify the repository and branch configuration for this job.")){
common.warningMsg("Warning: Cannot checkout source repo source repo is empty")
} else {
throw e
}
}
git.mirrorGit(SOURCE_URL, TARGET_URL, CREDENTIALS_ID, BRANCHES, true, true, false)
}
} catch (Throwable e) {
// If there was an error or exception thrown, the build failed
currentBuild.result = "FAILURE"
currentBuild.description = currentBuild.description ? e.message + " " + currentBuild.description : e.message
throw e
} finally {
if(env.getEnvironment().containsKey("NOTIFICATION_RECIPIENTS")){
common.sendNotification(currentBuild.result,"",["slack", "email"], ["failed"], env["JOB_NAME"], env["BUILD_NUMBER"], env["BUILD_URL"], "MCP jenkins", env["NOTIFICATION_RECIPIENTS"])
}else{
common.sendNotification(currentBuild.result, "", ["slack"])
}
}
}
}
}