2013-01-22 18 views
13

Non voglio che Build Config A e Build Config B vengano eseguiti contemporaneamente, il che è possibile perché ho più agenti. Non importa in quale ordine queste configurazioni sono eseguite. Non fanno nemmeno parte dello stesso progetto di TeamCity e ciascuna prende di mira un diverso repository SVN. Tuttavia è possibile che entrambi funzionino contemporaneamente se vengono effettuati controlli simultanei su ciascun repository.TeamCity: impedisce l'esecuzione contemporanea di 2 build

Invece vorrei una configurazione per aspettare semplicemente che l'altro finisse. Ad esempio, se Build Config B inizia a funzionare, ma Build Config A è già in esecuzione, B attenderà fino al termine di A e quindi verrà eseguito.

Non penso che una dipendenza di snapshot funzioni perché presuppone che una configurazione abbia una dipendenza dall'altra che non è vera nel mio caso.

+1

perché non possono funzionare in modo indipendente? potrebbero interferire l'uno con l'altro tramite una risorsa condivisa? potresti appuntarli sullo stesso agente? – Matt

+0

Le build funzioneranno sempre insieme? In tal caso, è possibile rimuovere tutti i trigger di generazione da una delle build e assegnarvi una soluzione di build finale. Questo accoderà la build B al termine della build A. Detto questo, mi piace ancora il suggerimento di Matt di costringerli a correre entrambi sullo stesso agente di costruzione. –

+0

Non possono essere eseguiti indipendentemente a causa di una risorsa condivisa. Idealmente avrei trovato un modo per aggirare questo, ma ci vorrà un po 'di riconfigurazione, quindi spero almeno temporaneamente di impedirgli di funzionare contemporaneamente. – Keith

risposta

9

Per un rapido e sporco, basta fare una regola sulla scheda agenti compatibili per il progetto. Che devono essere eseguiti sul nome dell'agente contenente xxx (qualunque cosa sia), quelle build possono essere eseguite solo su quell'agente e non verranno mai eseguite contemporaneamente.

+2

Immagino che sarebbe bello se TeamCity avesse solo un'opzione contro una configurazione di build, ad esempio "Abilita build simultanee" attivata per impostazione predefinita. Non riesco a immaginare che sarebbe un plug-in difficile da scrivere, forse ci provo se ho tempo - tuttavia, nel frattempo questa soluzione è più che accettabile :) – James

10

Keith, ci sono due plugin che possono aiutarti: Il primo è Groovy plugin. Ha funzionalità di creare blocchi di nomi su tutti i progetti.

Il secondo è TeamCity.SharedResources. Ha funzionalità di definire risorse condivise e bloccarle con blocchi di lettura e scrittura. Tuttavia, le risorse definite in questo plugin sono definite per progetto. Stiamo sviluppando attivamente questo plugin, quindi siete invitati a guardare la sua pagina in our tracker

+0

Le risorse condivise sono in bundle con TeamCity a partire dalla versione v8.0, quindi ora sembra la risposta giusta. –

Problemi correlati