2012-08-07 17 views
6

Stiamo utilizzando TeamCity come server CI e abbiamo pensato a come implementare un metodo per la versione delle nostre versioni che è sicura (ossia minima opportunità per errore umano) ma anche che richiede il minimo sforzo possibile. Ad oggi sembra il più logico il seguente:TeamCity per leggere e aggiornare il numero di versione dal file di versione

  1. Creare un file di versione (o utilizzare assemblyinfo.cs). Le informazioni sulla versione sarebbero nel formato .... Questo file verrà controllato nel mio VCS.
  2. Eseguire un accumulo TeamCity
  3. TeamCity legge il file di versione dalla fase 1, individua ogni individuo i numeri e le serie corrispondenti parametri TeamCity build (modo che io possa utilizzare in seguito per cose come la creazione di pacchetti Nuget e l'etichettatura)
  4. AutoCity incrementa il valore finale del 'build count'.
  5. TeamCity salva il nuovo informazioni sulla versione al file di versione (con l'aggiornamento 'costruire count')
  6. TeamCity poi corre per il resto dei miei passi di compilazione, la creazione dei file, l'esecuzione di test di unità, impostando le versioni di montaggio corrette ecc .
  7. TeamCity infine controlla il file in VCS

crediamo che il vantaggio di fare le cose in questo modo è dovremmo abbiamo bisogno di fare una correzione di una vecchia versione allora il numero di versione sarà corretto e TeamCity può semplicemente lavorare con il vecchio file di versione e incrementare il conteggio delle build come al solito. Questo fa presupporre che stiamo aggiornando correttamente le nostre versioni major/minor/patch. Speriamo che funzionerà bene con la prossima versione di TeamCity 7.1 che ti consentirà di scegliere il ramo da costruire tramite la finestra di dialogo di generazione personalizzata.

Da quello che ho già letto fino ad ora questo tipo di operazioni dovrebbe essere possibile in TeamCity ma stiamo cercando la radice più semplice per ottenere questo problema visto che siamo solo una squadra di due uomini e non possiamo permettersi di investire grandi quantità di tempo in esperti di Nant o PowerShell solo per scoprire che potrebbe non fare ciò che vogliamo.

quindi credo che per riassumere le mie domande sono le seguenti:

  1. è quello che sto proponendo possibile?
  2. Se sì, qual è lo strumento migliore da utilizzare data la mia esperienza limitata di Nant, PowerShell ecc. (Ovvero che è la più veloce da apprendere per qualcuno la cui esperienza di riga di comando e script si estende fino alle semplici operazioni DOS e un po 'di VBScript)

Qualsiasi aiuto è molto apprezzato.

risposta

9

Per la vostra prima domanda: sì, è possibile:

  1. Aggiungi .git (.svn, .hg ecc) directory per VCS regole
  2. Leggi numero di versione nel vostro script di build in TeamCity (riga di comando corridore) nel tuo linguaggio di scripting preferito e incenerimento esso.
  3. Imposta numero di build tramite interaction protocol
  4. Aggiornamento numero di build in versione di file nel vostro linguaggio di scripting preferito
  5. eseguire la compilazione passi
  6. Eseguire impegnarsi e spingere, è possibile perché avete già .git (.svn,.hg etc) directory in build dir nell'ultimo passaggio

Scusate ma non posso rispondere per la vostra seconda domanda perché non conosco strumenti appropriati per Windows. Su Linux userei bash.

+0

Grazie per l'input, sto solo aspettando che qualcuno aiuti nello strumento appropriato ora. –

+1

Per lo strumento per lo scripting, consiglierei powershell. TeamCity ha un buon runner per poter definire uno script che accetta parametri, quindi usa le variabili di TeamCity per passare quei parametri: ad es. uno script che inizia "param ($ defaultBranchVersion)" e imposta "Argomenti script" su% system.BranchVersion% Questo ha funzionato bene per me in passato. – Graham

Problemi correlati