Groovy switch statement with a list of values

I want to use the Switch statement in working with Jenkins.

def version = "1.2"
switch(GIT_BRANCH) {
  case "develop":
    result = "dev"
    break
  case ["master", "support/${version}"]:
    result = "list"
    break
  case "support/${version}":
    result = "sup"
    break
  default:
    result = "def"
    break
}
echo "${result}"

When GIT_BRANCHequal to:

  • develop- return value dev- OK
  • master- return value list- OK
  • support/1.2- return value sup- why not list?
+4
source share
1 answer

I assume that the type GIT_BRANCHis String, while it "support/${version}"is GString. If you convert the latter to String, it should work:

def version = "1.2"
switch(GIT_BRANCH) {
  case "develop":
    result = "dev"
    break
  case ["master", "support/${version}".toString()]:
    result = "list"
    break
  case "support/${version}":
    result = "sup"
    break
  default:
    result = "def"
    break
}
echo "${result}"

, , . GString List.

+11

Source: https://habr.com/ru/post/1650837/


All Articles