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"
}
}
}
})
Please sign in to leave a 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