Merge "Refactor release-mcp pipelines"
diff --git a/tag-git-repos.groovy b/tag-git-repos.groovy
index bb3f7a5..68229a6 100644
--- a/tag-git-repos.groovy
+++ b/tag-git-repos.groovy
@@ -29,6 +29,9 @@
def repos = GIT_REPO_LIST.tokenize('\n')
def repoUrl, repoName, repoCommit, repoArray
for (repo in repos){
+ if(repo.startsWith('#'))
+ common.warningMsg("Skipping:" + repo.toString())
+ continue
if(repo.trim().indexOf(' ') == -1){
throw new IllegalArgumentException("Wrong format of repository and commit input")
}
@@ -49,4 +52,4 @@
throw e
}
}
-}
\ No newline at end of file
+}
diff --git a/test-drivetrain.groovy b/test-drivetrain.groovy
index 21d1a8a..594e171 100644
--- a/test-drivetrain.groovy
+++ b/test-drivetrain.groovy
@@ -8,6 +8,7 @@
* TARGET_MCP_VERSION MCP version to upgrade to
* FUNC_TEST_SETTINGS Settings for functional tests
* ENVIRONMENT_IP IP of already deployed environment
+ * DELETE_STACK Option to delete Heat Stack
*/
@@ -34,10 +35,21 @@
}
def runJobOnJenkins(jenkinsUrl, userName, password, jobName, parameters){
+ def status = "null"
def jenkinsDownCmd = "curl -OL ${jenkinsUrl}/jnlpJars/jenkins-cli.jar --output ./jenkins-cli.jar"
- def runJobFromSaltMasterCmd = "java -jar jenkins-cli.jar -s ${jenkinsUrl} -noKeyAuth -auth admin:${password} build ${jobName} ${parameters} -s | grep -E 'SUCCESS|UNSTABLE'"
+ def runJobFromSaltMasterCmd = "java -jar jenkins-cli.jar -s ${jenkinsUrl} -noKeyAuth -auth ${userName}:${password} build ${jobName} ${parameters} -w"
+ def waitJobFromSaltMasterCmd = "curl -s -X GET '${jenkinsUrl}/job/${jobName}/lastBuild/api/json?tree=result' --user ${userName}:${password} | jq -r '.result'"
salt.cmdRun(pepperEnv, "I@salt:master", jenkinsDownCmd)
salt.cmdRun(pepperEnv, "I@salt:master", runJobFromSaltMasterCmd)
+ while (status == "null" || status.contains("parse error")){
+ status = salt.cmdRun(pepperEnv, "I@salt:master", waitJobFromSaltMasterCmd, false)
+ status = status.get("return")[0].values()[0].trim()
+ println("The job ${jobName} result is $status")
+ if(status == "FAILURE"){
+ throw new Exception("The job ${jobName} result is FAILURE.")
+ }
+ sleep(10)
+ }
}
timeout(time: 12, unit: 'HOURS') {
@@ -48,8 +60,8 @@
def saltCreds = [:]
def mcpEnvJobIP
- if(ENVIRONMENT_IP == ""){
- stage('Trigger deploy job') {
+ stage('Trigger deploy job') {
+ if(ENVIRONMENT_IP == ""){
mcpEnvJob = build(job: "create-mcp-env", parameters: [
[$class: 'StringParameterValue', name: 'OS_AZ', value: 'mcp-mk'],
[$class: 'StringParameterValue', name: 'OS_PROJECT_NAME', value: 'mcp-mk'],
@@ -59,12 +71,11 @@
[$class: 'BooleanParameterValue', name: 'RUN_TESTS', value: false],
[$class: 'TextParameterValue', name: 'COOKIECUTTER_TEMPLATE_CONTEXT', value: COOKIECUTTER_TEMPLATE_CONTEXT]
])
+ def mcpEnvJobDesc = mcpEnvJob.getDescription().tokenize(" ")
+ mcpEnvJobIP = mcpEnvJobDesc[2]
+ }else{
+ mcpEnvJobIP = ENVIRONMENT_IP
}
-
- def mcpEnvJobDesc = mcpEnvJob.getDescription().tokenize(" ")
- mcpEnvJobIP = mcpEnvJobDesc[2]
- }else{
- mcpEnvJobIP = ENVIRONMENT_IP
}
def saltMasterUrl = "http://${mcpEnvJobIP}:6969"
@@ -94,6 +105,15 @@
//runJobOnJenkins(jenkinsUrl, "admin", stackCicdPassword, "cvp-dt-func", "-p SETTINGS=${FUNC_TEST_SETTINGS}")
}
+ stage('Delete Heat Stack') {
+ if(DELETE_STACK.toBoolean()){
+ mcpEnvJob = build(job: "delete-heat-stack-for-mcp-env", parameters: [
+ [$class: 'StringParameterValue', name: 'OS_PROJECT_NAME', value: 'mcp-mk'],
+ [$class: 'StringParameterValue', name: 'STACK_NAME', value: 'jenkins-drivetrain-test-' + currentBuild.number],
+ ])
+ }
+ }
+
} catch (Throwable e) {
currentBuild.result = 'FAILURE'
throw e