2015-01-27 12 views
5

Qualcuno può dirmi quale sarebbe il modo migliore per configurare i build di TeamCity quando voglio eseguire configurazioni di build identiche, ma su diverse radici VCS?Best Practice per identiche build di TeamCity su diverse radici VCS

ad es. Ho diverse configurazioni 'build & test' per un repository (per ogni progetto nel repository) e voglio duplicare tutte le impostazioni tra i nostri rami master/develop/r1.0/etc?

In passato ho appena duplicato l'intero set di configurazione di build e modificato la radice VCS per raggiungere questo obiettivo, ma con l'aumentare del numero di filiali (con più rami di rilascio aggiunti nel tempo), come posso semplificare le mie configurazioni e minimizzare il numero di posti in cui avrei bisogno di apportare modifiche se qualcosa sulla build è cambiato?

+0

Costruisci e collaudi versioni legacy ecc? - Personalmente uso TC @work, ma solo per cose mediocri come "costruire e testare questo ramo di una release e distribuirlo in testing - quindi elevare alla produzione" - mantengo solo 1 ramo di rilascio per progetto. Non credo che TC possa accogliere ciò che vuoi in un modo diverso da quello che già conosci e usi. Scusa – VisualBean

+0

Vorrei creare e testarli una volta che il ramo è stato creato, quindi qualsiasi aggiornamento rapido in quel ramo avrebbe dovuto passare attraverso lo stesso processo. Potrebbero esserci 3-4 rami di rilascio in gioco in qualsiasi momento. –

+0

Quale controllo di versione si usa? Come in, quali sono le diverse radici VCS? – psych

risposta

4

Ecco il mio punto di vista per questo problema. Penso che la soluzione per te stia usando Build configuration template + parametrization in VCS root. Abbiamo circa 20 configurazioni di build (1 configurazione = 1 ramo), realizzate solo da due modelli e una radice vcs. Tutte le cose comuni per la configurazione sono mantenute nel modello. Solo pochi parametri specifici sono nella configurazione stessa e li si imposta alla creazione della configurazione dal modello. Uno di questi è il nome del ramo che è strettamente correlato al nome della configurazione nel mio caso.

I modelli sono

  1. continuo modello di integrazione - in cui si desidera solo controllare i progetti stanno costruendo
  2. template di uscita - Costruire più rilasciare generazione

punti VCSroot solo di radice di controllo del codice sorgente. Il parametro di diramazione di vcs root è impostato sul parametro di diramazione personalizzato che genera la configurazione ereditata dal modello di configurazione di build.

abbiamo filiali strutturati come questo

-Master 
-Development 
-Releases__3.4.1 
     |_3.4.2 
     |_3.4.3 

Maestro e lo sviluppo sono utilizzando il modello di integrazione continua, e ogni nuovo ramo di release sta usando modello di configurazione di rilascio. Per me i proces di creazione di nuova configurazione per 3.4.4 ramo è come questo:

  1. Creare nuova configurazione
  2. Seleziona modello Scegli: COMUNICATO
  3. Inserisci il nome di configurazione Inserisci: 3.4.4
  4. Salva
  5. Run costruire

Punto è che il parametro nome Sede in uscita t emplate è così

%BranchPath%=Release/%ConfigurationName% 

Per il modello Integrazione continua sarebbe

%BranchPath%=%ConfigurationName% 

Inoltre nel ramo principale VCS è impostato% BranchPath% passato a esso dalla configurazione, quindi VCS possono lavorare con entrambi i modelli e tutte le 20 configurazioni E questo è tutto ..:) Spero che in qualche modo aiuti