Conditional step with kotlin dsl

Hello, everyone!

 

Is it possible to generate a script with conditional step dependant on value of build parameter or environment variable? I tried to access environment, but got AccessControlException from java when loading config from vcs.  i'v also tried to use  if ("%runstep%" == "yes") ...  wich leads to false (of course) because there is no parameters preprocessing. So i'm stuck with it. 

What i want to achive is something like this:

object TestKtl_Test : BuildType({
uuid = "bee54548-6165-4c1c-8282-1b063288c0c4"
name = "test"

params {
add {
param("env.RUNBUILD", "no")
}
}

steps {
if ("%env.RUNBUILD%" == "yes"){
script {
scriptContent = "echo yo"
}
}
}
})
0
1 comment

Hi Dmitry,

 

No, it's still not possible to run conditional steps. The TeamCity server loads the DSL and converts it to the same structures that the non-DSL uses, which means that features not available for the UI won't be available for the DSL.

 

In your case, the option would be to add the condition check as a first part of the script, or first step of the build, and don't run the script if the condition for running it is not met.

 

Please watch and vote here: https://youtrack.jetbrains.com/issue/TW-17939

0

Please sign in to leave a comment.