Come fare build giornaliera per NET progetto dalla A - Z?
-
29-09-2019 - |
Domanda
Sono uno sviluppatore newbie che vogliono imparare meglio il processo di sviluppo del software. Le mie domande sono:
- ciò che è quotidiano-build in generale?
- qual è la differenza se io costruisco il mio progetto in VS?
- come lo facciamo nel modo migliore per il progetto NET (preferibilmente utilizzando TFS)?
- di più le cose che avrei dovuto / avere a conoscere?
Ogni riferimento ad un articolo / libri / altre domande sono i benvenuti.
Grazie
Soluzione
1) Dal Wikipedia :
Una build giornaliera o nightly build è la pratica di ogni giorno facendo una build del software della versione più recente di un programma. Questo è così si può prima essere compilato per garantire che tutte le dipendenze richieste siano presenti, e possibilmente testato per mostrare sono stati introdotti senza insetti. La build giornaliera è spesso a disposizione del pubblico anche per avere accesso alle ultime funzionalità per il feedback.
2) non ci dovrebbe essere differenza tra una nightly build e una generazione da VS, tuttavia l'idea alla base di una build giornaliera è che si è automatizzato. In questo modo è possibile pianificare l'esecuzione alle 03:00 :)
Sarebbe anche una buona idea eseguire verifiche fasi (ad esempio, unità o test funzionali) per verificare nulla è stato rotto nella ultima build. In questo modo è possibile garantire che le compilazioni di compilazione ed è in buone condizioni. In questo modo è possibile distribuire una build fresca a volontà.
Senza tale processo un posto, se qualcuno ha bisogno di una build non sai mai quanto tempo potrebbe prendere per consegnarlo a loro. Si può essere in grado di costruire solo in VS, senza alcuna difficoltà, o potrebbe essere dovuto sistemare parti del codice solo per arrivare a costruire. Questo diventa un problema più grande quando la build è grande e si compone di molteplici soluzioni che ogni bisogno di essere costruita separatamente.
3) Si potrebbe creare uno script batch che esegue la build per voi, di è possibile utilizzare uno strumento per questo scopo. Per maggiori informazioni consultare: cosa-strumento da usare-per-automatica -nightly-costruisce . Alcuni di loro suggerimenti includono:
Altri suggerimenti
articolo da Joel. Bene leggere.
Una build giornaliera è per lo più una compilazione automatica, costruito da un server centrale. La differenza di costruire il proprio progetto è che si ottiene a conoscenza di tutte le DLL confezionato nell'applicazione, il codice non controllato in in controllo del codice sorgente, le dipendenze locali, ecc .. L'applicazione compilata finale e di DLL sono la stessa di quella di costruire a livello locale.
Hudson per il pernottamento costruisce, ma si può anche utilizzare Crociera control.Net. Perché noi facciamo Java e .NET Hudson è la soluzione migliore. Se si dispone di server di Team Foundation da MS si potrebbe anche usare questo.
Si prega di guardare questo per l'integrazione di Hudson e C #.
Considera anche integrando StyleCop, FxCop e Unità test nel server di build.
C'è un ottimo articolo di Martin Fowler su questo argomento
http://martinfowler.com/articles/continuousIntegration.html
Io personalmente non sono d'accordo che la costruzione di codice sorgente da voi ENV di sviluppo è lo stesso come facendo un nightly build o build giornaliera. Ambiente di sviluppo è invaso da componenti, SDK, biblioteche e le risorse che si nascondono a volte sospeso. Facendo un nightly build su una macchina build è il modo migliore per andare.
Anche facendo una generazione da propria macchina impedisce check-in al giorno per il codice mainstream. Anche in questo caso una cattiva pratica.
Un nightly build dovrebbe lavorare con strumenti e librerie di compilazione minime richieste. Usando tutta dev ENV sul sistema di compilazione è una cattiva idea. Una build completa avrebbe anche qualche rapido e sporco - test poco profonde automatizzato da eseguire sul codice dopo che è stato compilato, costruire, e distribuito in test / pre-prod ENV. NUnit, selenio, e FxCop sono i tuoi amici.
- Una compilazione automatica ogni giorno (o notte) del sistema completo. Gli errori di generazione di report sistema di compilazione mia posta, ecc.
- Esso si basa su una macchina separata, si assicura di non aver dimenticato di controllare in qualsiasi file, o che hanno installato le dipendenze senza documenti solo sulla vostra macchina. E si segnala gli errori.
- non si fermano alle build giornaliere, andare per l'integrazione continua che costruisce dopo ogni check-in. Dai un'occhiata alla Cruisecontrol.net .
-
Daily generazioni sono destinate a garantire che almeno una volta al giorno la vostra applicazione è in stato edificabile. Essi hanno generalmente un processo automatizzato. Molte squadre preferiscono avere l'integrazione continua generazioni sono preparati dopo ogni check-in al repository.
-
Automated processo quotidiano ha il vantaggio di essere automatizzato :) È anche possibile impostare fino a svolgere vari compiti ausiliari: l'esecuzione di test di unità per i componenti server che implementano automaticamente. Quando si sta costruendo sulla propria macchina dev, si sta assicurando che il locale copia è valida e compilabile, mentre server di CI afferma la stessa cosa per il tuo repository .
- CruiseControl.NET è una soluzione popolare. Si può anche considerare utilizzando Rake .
1) Una build giornaliera è una zuppa completa per dadi costruzione della base di codice e processi che l'installatore sarebbe passare attraverso compresi i test, installazione, e potenzialmente la rimozione.
2) Si tratta di una costruzione locale, ci dovrebbe essere alcuna differenza, tranne sarete compilare e testare il codice non necessariamente il processo di applicazione unica.
3) E 'in aria, dipende dal budget, squadra, tra le altre cose.
4) L'articolo di Joel come è stato scritto in precedenza.
ciò che è quotidiano-build in generale?
"build giornaliera" è una parte di "integrazione continua", e significa che un progetto completo è costruito regolarmente e automaticamente. In genere questo accade almeno giornalmente, o anche più frequentemente, se possibile, forse anche dopo ogni modifica.
L'obiettivo principale è quello di assicurarsi che il progetto può sempre essere costruito; Inoltre, vari test possono essere eseguiti come parte della compilazione, è possibile distribuire automaticamente ad un ambiente di test, generare programmi di installazione per ulteriori test, ecc.
qual è la differenza se io costruisco il mio progetto in VS?
E 'avviene automaticamente, e utilizzando la configurazione di default. Questo assicura che il progetto si basa sempre in modo corretto, e non solo sul sistema (ad esempio, perché avete un config speciale che si è dimenticato di controllare in controllo di versione, o avete una particolare IDE installato).
Come lo facciamo nel modo migliore per il progetto NET?
Utilizza un server CI (integrazione continua), ad esempio, CruiseControl.NET . Ci sono diversi a disposizione.