Responsabilità di creare script e creare server

12

Ho bisogno di alcuni chiarimenti sulle responsabilità dello script di build e del server di build.

Ho letto diversi articoli sulla rete riguardanti l'integrazione e le build continue. Compreso

E ho avuto una conversazione con il mio consulente sul processo di costruzione del nostro software. Poiché è molto esperto, mi fido delle sue affermazioni, ma mi è rimasta confusa.

Come ho capito, dalla mia ricerca (e per favore correggimi qui, dato che è quello che ti sto chiedendo) l'ideale dovrebbe essere il seguente:

  • ogni progetto ha il suo script di compilazione
  • questo script costruisce il progetto
  • questo script assicura che le dipendenze siano state create in precedenza

Poiché le dipendenze potrebbero essere un altro progetto, con il proprio script di compilazione si ottiene una gerarchia ad albero. Potrebbe esserci uno script di build principale che crea tutti i progetti e le applicazioni.

Tuttavia le responsabilità del Build Server sono:

  • controlla il repository
  • attiva la build
  • test di attivazione e altri strumenti di controllo qualità
  • rende disponibile l'artefatto

Può essere attivato manualmente, ogni notte o ogni volta che il repository cambia

Gli obiettivi del mio consulente sono, come li ho capiti, che uno script di compilazione è un modo per inflessibile e non gestibile (a parte il fatto che ci vorrebbe molto tempo a crearne uno per il nostro codice base legacy). Anche il Build Server dovrebbe mantenere le dipendenze, per esempio per usare le dipendenze più vecchie quando si creano nuovi fallimenti. E in particolare per Ant in quanto era il soggetto concreto, non è in grado di costruire tutti i tipi di tecnologie diverse che vengono utilizzate nella base di codice e non è in grado di mantenere le dipendenze.

Puoi per favore elaborare gli obiettivi e chiarire le responsabilità?

    
posta Angelo.Hannes 04.04.2013 - 17:12
fonte

1 risposta

14

Queste cose sono ortogonali:

Lo script di compilazione è il meccanismo che, al momento dell'invocazione sulla struttura dei sorgenti appena ritirata, produce una build completa di obiettivi e dipendenze richiesti. Potrebbe semplicemente essere 'make all' se hai un makefile, o un'idonea invocazione di MSBuild, Ant, Maven o Scons. Se si dispone di una gerarchia complessa di dipendenze o progetti correlati, lo 'script di compilazione' può essere un file di livello superiore che richiama a turno ciascuno di essi, verificando l'esito positivo.

Lo script di build è solo uno script di possibilmente molti - checkout, build, test, pacchetto - ma potresti avere un meccanismo all-in-one controllato da parametri della riga di comando - dipende dal tuo ambiente.

Il server di build, o server di integrazione continuo , è il meccanismo di automazione responsabile della pianificazione / attivazione, monitoraggio e reporting del checkout - > build - > test - > pacchetto - > stage - > distribuire la pipeline. Potresti usare cron / Task Scheduler se non avevi nulla di più sofisticato da usare, ma ora ci sono molti strumenti eccellenti come Jenkins, Cruise Control, TeamCity, ecc.

È importante richiamare una build senza utilizzando il server CI, nel caso in cui sia occupato / non in linea / non raggiungibile / altrimenti-non disponibile, quindi quindi la logica per ottenere la build / test / qualunque cosa deve essere al di fuori del sistema di CI, ma è invocabile da esso, parametrizzato per tipo / versione / architettura di ramo / build, ecc.

    
risposta data 05.04.2013 - 01:07
fonte

Leggi altre domande sui tag