Added WIP detecting in commit messages for salt formulas and models
Change-Id: I2032ed19f46ffcedd0a66e7e15a6027e0e012555
diff --git a/test-salt-formulas-pipeline.groovy b/test-salt-formulas-pipeline.groovy
index d088030..c3a2e51 100644
--- a/test-salt-formulas-pipeline.groovy
+++ b/test-salt-formulas-pipeline.groovy
@@ -25,7 +25,7 @@
defaultGitUrl = null
}
-def checkouted = false;
+def checkouted = false
node("python") {
try{
@@ -41,73 +41,79 @@
stage("checkout") {
if (gerritRef) {
// job is triggered by Gerrit
- // test if change aren't already merged
def gerritChange = gerrit.getGerritChange(GERRIT_NAME, GERRIT_HOST, GERRIT_CHANGE_NUMBER, CREDENTIALS_ID)
- def merged = gerritChange.status == "MERGED"
- if(!merged){
- checkouted = gerrit.gerritPatchsetCheckout ([
- credentialsId : CREDENTIALS_ID
- ])
- } else{
- common.successMsg("Change ${GERRIT_CHANGE_NUMBER} is already merged, no need to test them")
+ // test WIP contains in commit message
+ if(gerritChange.commitMessage.contains("WIP")){
+ common.successMsg("Commit message contains WIP, skipping tests") // do nothing
+ }else{
+ // test if change aren't already merged
+ def merged = gerritChange.status == "MERGED"
+ if(!merged){
+ checkouted = gerrit.gerritPatchsetCheckout ([
+ credentialsId : CREDENTIALS_ID
+ ])
+ } else{
+ common.successMsg("Change ${GERRIT_CHANGE_NUMBER} is already merged, no need to test them")
+ }
}
} else if(defaultGitRef && defaultGitUrl) {
checkouted = gerrit.gerritPatchsetCheckout(defaultGitUrl, defaultGitRef, "HEAD", CREDENTIALS_ID)
- }
- if(!checkouted){
+ } else {
throw new Exception("Cannot checkout gerrit patchset, GERRIT_REFSPEC and DEFAULT_GIT_REF is null")
}
}
stage("test") {
if(checkouted){
- wrap([$class: 'AnsiColorBuildWrapper']) {
- sh("make clean")
- sh("[ $SALT_VERSION != 'latest' ] || export SALT_VERSION=''; make test")
+ wrap([$class: 'AnsiColorBuildWrapper']) {
+ sh("make clean")
+ sh("[ $SALT_VERSION != 'latest' ] || export SALT_VERSION=''; make test")
}
}
}
stage("kitchen") {
- if (fileExists(".kitchen.yml")) {
- common.infoMsg(".kitchen.yml found, running kitchen tests")
- ruby.ensureRubyEnv()
- def kitchenEnvs = []
- if(fileExists(".travis.yml")){
- common.infoMsg(".travis.yml found, running custom kitchen init")
- def kitchenConfigYML = readYaml(file: ".travis.yml")
- kitchenEnvs=kitchenConfigYML["env"]
- def kitchenInit = kitchenConfigYML["install"]
- def kitchenInstalled = false
- if(kitchenInit && !kitchenInit.isEmpty()){
- for(int i=0;i<kitchenInit.size();i++){
- if(kitchenInit[i].trim().startsWith("test -e Gemfile")){ //found Gemfile config
- common.infoMsg("Custom Gemfile configuration found, using them")
- ruby.installKitchen(kitchenInit[i].trim())
- kitchenInstalled = true
+ if(checkouted){
+ if (fileExists(".kitchen.yml")) {
+ common.infoMsg(".kitchen.yml found, running kitchen tests")
+ ruby.ensureRubyEnv()
+ def kitchenEnvs = []
+ if(fileExists(".travis.yml")){
+ common.infoMsg(".travis.yml found, running custom kitchen init")
+ def kitchenConfigYML = readYaml(file: ".travis.yml")
+ kitchenEnvs=kitchenConfigYML["env"]
+ def kitchenInit = kitchenConfigYML["install"]
+ def kitchenInstalled = false
+ if(kitchenInit && !kitchenInit.isEmpty()){
+ for(int i=0;i<kitchenInit.size();i++){
+ if(kitchenInit[i].trim().startsWith("test -e Gemfile")){ //found Gemfile config
+ common.infoMsg("Custom Gemfile configuration found, using them")
+ ruby.installKitchen(kitchenInit[i].trim())
+ kitchenInstalled = true
+ }
}
}
- }
- if(!kitchenInstalled){
- ruby.installKitchen()
- }
- }else{
- common.infoMsg(".travis.yml not found, running default kitchen init")
- ruby.installKitchen()
- }
- common.infoMsg("Running kitchen testing, parallel mode: " + KITCHEN_TESTS_PARALLEL.toBoolean())
- wrap([$class: 'AnsiColorBuildWrapper']) {
- if(kitchenEnvs && !kitchenEnvs.isEmpty()){
- common.infoMsg("Found multiple environment, first running kitchen without custom env")
- ruby.runKitchenTests("", KITCHEN_TESTS_PARALLEL.toBoolean())
- for(int i=0;i<kitchenEnvs.size();i++){
- common.infoMsg("Found multiple environment, kitchen running with env: " + kitchenEnvs[i])
- ruby.runKitchenTests(kitchenEnvs[i], KITCHEN_TESTS_PARALLEL.toBoolean())
+ if(!kitchenInstalled){
+ ruby.installKitchen()
}
}else{
- ruby.runKitchenTests("", KITCHEN_TESTS_PARALLEL.toBoolean())
+ common.infoMsg(".travis.yml not found, running default kitchen init")
+ ruby.installKitchen()
}
+ common.infoMsg("Running kitchen testing, parallel mode: " + KITCHEN_TESTS_PARALLEL.toBoolean())
+ wrap([$class: 'AnsiColorBuildWrapper']) {
+ if(kitchenEnvs && !kitchenEnvs.isEmpty()){
+ common.infoMsg("Found multiple environment, first running kitchen without custom env")
+ ruby.runKitchenTests("", KITCHEN_TESTS_PARALLEL.toBoolean())
+ for(int i=0;i<kitchenEnvs.size();i++){
+ common.infoMsg("Found multiple environment, kitchen running with env: " + kitchenEnvs[i])
+ ruby.runKitchenTests(kitchenEnvs[i], KITCHEN_TESTS_PARALLEL.toBoolean())
+ }
+ }else{
+ ruby.runKitchenTests("", KITCHEN_TESTS_PARALLEL.toBoolean())
+ }
+ }
+ } else {
+ common.infoMsg(".kitchen.yml not found")
}
- } else {
- common.infoMsg(".kitchen.yml not found")
}
}
} catch (Throwable e) {
diff --git a/test-salt-models-pipeline.groovy b/test-salt-models-pipeline.groovy
index fe08e75..c6f1a71 100644
--- a/test-salt-models-pipeline.groovy
+++ b/test-salt-models-pipeline.groovy
@@ -29,7 +29,6 @@
defaultGitUrl = null
}
def checkouted = false
-def merged = false
node("python") {
try{
stage("stop old tests"){
@@ -46,18 +45,25 @@
// job is triggered by Gerrit
// test if change aren't already merged
def gerritChange = gerrit.getGerritChange(GERRIT_NAME, GERRIT_HOST, GERRIT_CHANGE_NUMBER, CREDENTIALS_ID)
- merged = gerritChange.status == "MERGED"
- if(!merged){
- checkouted = gerrit.gerritPatchsetCheckout ([
- credentialsId : CREDENTIALS_ID
- ])
- } else{
- common.successMsg("Change ${GERRIT_CHANGE_NUMBER} is already merged, no need to test them")
+ // test WIP contains in commit message
+ if (gerritChange.commitMessage.contains("WIP")) {
+ common.successMsg("Commit message contains WIP, skipping tests") // do nothing
+ } else {
+ def merged = gerritChange.status == "MERGED"
+ if(!merged){
+ checkouted = gerrit.gerritPatchsetCheckout ([
+ credentialsId : CREDENTIALS_ID
+ ])
+ } else{
+ common.successMsg("Change ${GERRIT_CHANGE_NUMBER} is already merged, no need to test them")
+ }
}
} else if(defaultGitRef && defaultGitUrl) {
checkouted = gerrit.gerritPatchsetCheckout(defaultGitUrl, defaultGitRef, "HEAD", CREDENTIALS_ID)
+ } else {
+ throw new Exception("Cannot checkout gerrit patchset, GERRIT_REFSPEC and DEFAULT_GIT_REF is null")
}
- if(checkouted){
+ if(checkouted) {
if (fileExists('classes/system')) {
ssh.prepareSshAgentKey(CREDENTIALS_ID)
dir('classes/system') {
@@ -66,13 +72,11 @@
}
ssh.agentSh("git submodule init; git submodule sync; git submodule update --recursive")
}
- }else if(!merged){
- throw new Exception("Cannot checkout gerrit patchset, GERRIT_REFSPEC and DEFAULT_GIT_REF is null")
}
}
stage("test-nodes") {
- if(!merged){
+ if(checkouted) {
def workspace = common.getWorkspace()
def nodes = sh(script: "find ./nodes -type f -name 'cfg*.yml'", returnStdout: true).tokenize()
def buildSteps = [:]
@@ -104,7 +108,7 @@
def jenkinsUtils = new com.mirantis.mk.JenkinsUtils()
def triggeredBuilds= gerrit.getGerritTriggeredBuilds(jenkinsUtils.getJobRunningBuilds(jobName), gerritChangeNumber, excludePatchsetNumber)
def buildNums =[]
- for(int i=0;i<triggeredBuilds.size();i++){
+ for (int i=0; i<triggeredBuilds.size(); i++) {
buildNums.add(triggeredBuilds[i].number)
}
return buildNums