Memorizza la configurazione del server di build nello stesso repository del codice sorgente?

0

A me e ai colleghi di lavoro è stato affidato il compito di "riscrivere" un'applicazione antica e non gestibile e di trasformarla in qualcosa di funzionale.

Sto configurando un server di integrazione continuo e, poiché stiamo sviluppando per .NET, penso che userò CruiseControl.net

Il software in fase di costruzione avrà una grande quantità di obiettivi di compilazione (lingua, caratteristiche, ecc.), quindi le modifiche alla configurazione del build server potrebbero essere più frequenti. Dal momento che includeranno anche i driver e eseguiranno una serie di test di controllo qualità, potrebbero diventare anche piuttosto complicati.

Quindi una domanda che ho, è che dovrei inserire i file di configurazione e le impostazioni per il build server nello stesso repository sorgente del code-base. Quindi è facile sapere quale versione della configurazione di build è stata utilizzata con una revisione del codice di base. Ma qualcosa mi sembra "icky" ma non so perché.

Oppure, posso avere un repository o un percorso separato per la configurazione del build server e mantenere il lignaggio della configurazione relativo alla base del codice principale con i messaggi di commit.

Qualcuno ha familiarità con entrambe le situazioni e hai incontrato problemi nell'effettuare l'una o l'altra? Credo che CC.NET possa controllare automaticamente le sue informazioni di configurazione, quindi entrambe le opzioni dovrebbero funzionare.

    
posta whatsisname 06.08.2011 - 00:09
fonte

1 risposta

3

Nel mio lavoro li teniamo entrambi insieme.

Penso che come progetto preferiresti generalmente avere tutto il necessario per compilare-testare e impacchettare il tuo progetto nello stesso repository.

Il grande vantaggio di un server CI è che un commit che attiva alcuni errori di test viene catturato rapidamente e corretto dallo sviluppatore. Affinché questo accada, lo sviluppatore dovrà riprodurre il test localmente, quindi ha senso tenere tutto in un posto. Ha anche senso che il test si trovi nella stessa posizione dell'origine, poiché spesso svilupperesti alcune nuove funzionalità e scriverai i test contemporaneamente.

Oltre a ciò, dipende da cosa sta effettivamente facendo il tuo server CI. Non manterrei nessuna delle configurazioni richieste per il test nel file di configurazione di CruiseControl.

Utilizza invece alcuni strumenti di compilazione (consulta la domanda qui ) come NAnt e conserva tutti gli script richiesti per la creazione e il testing nel repository.

Quindi un progetto "pulito" avrà un file di build principale (supponiamo che sia NAnt), e lo si dovrebbe costruire con ant build , testarlo con ant test e comprimerlo con pacchetto ant . il tuo server CI è sempre al corrente del file build.xml principale e la sua configurazione (il file cruisecontrol.xml) dovrebbe cambiare raramente.

    
risposta data 06.08.2011 - 01:22
fonte