Ostatnio miałem potrzebę stworzenia konfiguracji w TeamCity, w której build jest triggerowany, gdy tworzymy nowego taga. Przydaje się to w szczególności na branchu master, gdy nie chcemy tworzyć builda lub/i kalkulować nowej wersji podczas każdego commita, a jedynie wtedy kiedy sami, w sposób explicite, stworzymy nowy tag (wersję). Niestety, aktualnie TeamCity nie wspiera jeszcze tej funkcji, ale jest na to workaround. Poniżej podaję gotowy przepis na tę konfigurację.
Aby build triggerował się tylko i wyłącznie podczas stworzenia nowego taga należy zastosować następujące ustawienia:
Version Control Settings > Branch Filter:
+:*
-:<default>
Version Control Settings > VCS Root:
Default branch: master
Branch specification:
+:refs/tags/*
-:<default>
Triggers > VCS Trigger:
Parameters:
Dodatkowo, musimy dodać następujący parametr (Configuration Parameters): teamcity.vcsTrigger.runBuildInNewEmptyBranch
z wartością true.
Jeśli nie korzystamy z prefiksów w taga dla wersji, to możemy też ustawić wersję bezpośrednio z taga:
Build number format: %teamcity.build.branch%
Powyższą receptę przetestowałem na TeamCity w wersji 2019.1.5. Ticket do TeamCity traktujący o problemie to TW-43606.