Installing compatibility requirements within TC build scripts

I have some agent requirements that I want to try to automate the installation of. In my case this is: dotnet runtime 6, a Unity editor version, and powershell. 

I've created scripts to automatically install these compatibility requirements, and want to run them as snapshot dependencies before my main build configs.

The problem is that I can't even start my build chains if the compatibility requirements aren't met, so I can't have scripts which install them dynamically within the chain.


A less automated solution would be to just manually run each dependency installation step in isolation, effectively manually reproducing a TC build chain. But even in this case, agent compatibilities aren't updated, and I can't find a way to update them without manually remoting in and stopping and starting a build agent processes.


Any suggestions to avoid needing to manually remote into new agents and install deps would be much appreciated. Can I choose to ignore agent compatibility? Is there a solution that can avoid containers?


1 comment
Comment actions Permalink


Just to clarify if the issue is still actual.

So in the main configuration you have a .NET related build step which requires .NET 6 just because the step exists there, right?

To me it sounds more natural to have a build configuration which is executed manually on all of the agents via custom build dialog (see <All enabled compatible agents> option there). But after installing the software you also need to restart the agents, because they detect .NET only on start and never scan the system for a new software.

But overall, the better approach is to either use VMs which are created by some scripts and then configured in TeamCity as cloud agents, or Docker containers.



Please sign in to leave a comment.