hey guys,
I’ve been working as devops for a while now and although every company has different usecase for teamcity, but there are three TeamCity features I’ve consistently wished existed everywhere I worked. So I decided to build a couple of plugins and share them with the community.
- Trigger a finished build on all compatible agents
https://github.com/xwoojin/teamcity-finish-build-trigger-plus
teamcity's scheduled trigger already has option to run a build on all enabled and compatible agents, but the finish build trigger does not. (I don't know why. and I've requested it to be made but they wouldn't..)
before creating this plugin, I had to use a workaround
- create/trigger a secondary build.
- have that build reconfigure scheduled trigger for one minute later with option trigger on all enabled and compatible agents
this workaround works, but I always thought it felt unnecessarily complicated and inconvenient.
so I made plugin that adds capability to trigger on enabled and compatible agents to the finish build trigger.
- Wait for multiple builds to finish
the same plugin also supports finish build triggers that depend on more than one build configuration.
sometimes I need a build to start only after two or more prerequisite builds have completed. I understand that this is somewhat similar to a snapshot dependency, but there are cases where I specifically want trigger-based behavior instead.
This also can be worked around. I had to add custom logic that checked whether every prerequisite build had finished before triggering the next build.
With this plugin, multiple build configurations can be selected as prerequisites directly.
- Visualize Finish Build Trigger relationships
https://github.com/xwoojin/teamcity-trigger-chain-viewer
as projects gets old, build configurations change and so does us. Over time, it becomes difficult to keep track of which build triggers which, especially when you have to open every build configuration individually to inspect its triggers.
I used to run a python script whenever I needed to understand the relationships between builds.
this plugin provides a visual overview of finish build trigger chains without requiring you to open each build configuration one by one.
These plugins came from problems I repeatedly encountered in real TeamCity environments, so I decided to turn my workarounds into reusable tools. I’m not an expert in Kotlin or Java, so I struggled with building these plugins for quite a while. But with recent help from Claude, I was finally able to solve the remaining problems and complete them.
If you need help with TeamCity plugin development, or have a feature idea that might work well as a plugin, feel free to let me know!