Kotlin DSL with teamcity.ui.settings.readOnly makes pausing difficult
We are working on a project with all configuration in the DSL and would like to prevent UI changes to configuration with the "teamcity.ui.settings.readOnly" parameter, and ideally do not want TeamCity able to push patches to the DSL code repository. Unfortunately this appears to cause an issue with build pausing as you can't pause a build from the GUI without overriding the readOnly setting and updating the build/project configuration to be paused.
Intuitively is seems like pausing could be more similar to an investigation - a runtime state that does not need to be in the configuration, something you might want to turn on/off depending on the current state of ongoing builds easily without requiring someone to be editing DSL code. Is there a way to achieve this or any thoughts on why it works the way it does?
Please sign in to leave a comment.
Hello!
The change you propose sounds entirely reasonable to me, so I have created a feature request: https://youtrack.jetbrains.com/issue/TW-66603. Please feel free to keep track and vote for it.
As to why it is stored on the DSL now; I suppose this is because "pausedness" is considered to be a build configuration property, rather than a property of build configuration and exact TeamCity instance combination. This has its benefits outside of the use case you have described (for instance, certain cases when you want to rollback to a previous version and unpause the build at the same time), but a) it is very situational and b) pausing/archiving entities is an action uncommon enough so to not be a hassle for manual switch. Still, let us see what my colleagues have to say on the point.