We got extremely fed up with Jenkins, its instability, abuse of LTS definition and so on, and now considering other options, where 1 of them is TeamCity.
But before migrating to it, I would like to clarify a few features, are they all exist in TeamCity or not.
- Dynamic dockerised slaves using AWS Spot fleet.
so far we use Jenkins ECS plugin, our slaves are spawned dynamically as ECS dockers on our Spot Fleet, which scales based on CloudWatch rule based on CPU usage. So it allows us theoretically infinitive concurrent builds - where each build happened inside own dockerised isolated slave in our Spot fleet.
I do understand TeamCity pricing politics with agents and concurrent build limitations, but if we will not touch agents context, do TeamCity support dynamic dockerised slaves on ECS with SpotFleet and further scalability?
- Dynamic UI with reactive parameters defined inside the pipeline file (IasC - Infrastructure as Code)
As I understand TeamCity also has code pipeline definition like Jenkinsfile which is located in `.Teamcity/settings.kts`, but apart from declarative build stages, we need dynamic parameters selection before the build, considering it is IaaC they also should be defined in declarative pipeline file.
Here is an example of QA/Prod EKS deployment pipelines we have:
We select an app from the dropdown list, we select app versions from the list dynamically queried from the app repository, then select environment and nspace of EKS where to deploy...
All those dropdowns are dynamic and populated based on previous selections. If you select one app, it will fetch versions from the corresponding repository and populate following dropdown with versions of that app, if select another app, the following dropdown list will contain other values, the same related to environment and nspaces, each environment has own corresponding list of nspaces.
Do `.Teamcity/settings.kts` allow defining such dynamic selection parameters with functions which resolve dynamic values and failover methods?
In Jenkinsfile it is somewhat a challenge but we managed to organise it in Jenkinsfile with Active Choice Plugin, however, we are still not happy with it and looking for the new and better tool.
Any chance I could be pointed to see some code snippets of such dynamic build parameters?
Is it base Teamcity functionality or some 3d party plugins?
Thank you in advance for information.