9

Sto cercando alcune raccomandazioni per la creazione e la distribuzione di progetti automaticamente.Che cos'è un buon processo di automazione e distribuzione build da utilizzare con asp.net?

La nostra attuale configurazione di sviluppo utilizza ASP.NET, SVN, CCNET e uno script MSBuild per la build del server di sviluppo. Stavo pensando di passare a Cruise invece di CCNET anche se non sono sicuro se questo mi dà qualcosa in più che non ho già.

Quello che mi piacerebbe automatizzare è il processo da dopo che una build automatica è stata eseguita per aggiornare il sito live con le nuove modifiche. Gli aggiornamenti del sito possono includere aggiornamenti del sito di base e aggiornamenti del client che possono essere codice e/o modifiche del database in modo che il processo debba essere sufficientemente flessibile in modo che possa gestire tali scenari.

Una delle mie fonti di ispirazione per questo è venuto da this video così come le infinite ore trascorse facendo aggiornamenti ogni mese.

+0

Solo un aggiornamento dopo 6 anni; Gli strumenti [Application release automation] (https://en.wikipedia.org/wiki/Application_release_automation) sono progettati specificamente per questo. BuildMaster è uno degli strumenti disponibili e [questo tutorial] (http://inedo.com/support/tutorials/building-and-deploying-a-net-web-application-using-buildmaster) delinea il processo menzionato. –

risposta

4

Per progetti più piccoli o personali, si consiglia di utilizzare qualcosa come il gratuito (ed eccellente) TeamCity di JetBrains. Automazione dei test unitari, integrazione continua e regole per ciò che accade dopo una build (incluso spostarlo in posizioni diverse).

Per team più grandi, ho effettivamente trovato un po 'di automazione di build sotto forma di attività personalizzate di MSBuild e RoboCopy funziona meglio. Questa bella combinazione tra la promozione manuale di build tra ambienti e l'utilizzo di MSBuild & RoboCopy per automatizzare parti di questo processo crea interruzioni nette tra gli ambienti (con pochissimi 'oops che non intendevo spingere là' errori). Ci consente anche di compilare la revisione del QA prima di pubblicizzarla.

Aggiornamento 2014/07/31:

ho usato custom TFS build templates con successo. Sono un po 'complicati, ma con loro puoi fare un sacco di cose interessanti.

Per i progetti open source (come le librerie NuGet) ospitati su GitHub, non penso che sia possibile battere AppVeyor. Ho alcuni progetti come Mailchimp.NET con build completa e NuGet implementa l'automazione.

+1

Ho finalmente aggiornato, da CruiseControl.NET a TeamCity e lo adoro. Questo è stato molto più facile da usare anche con script MSBuild personalizzati. –

0

Ho usato Nant in passato con molta fortuna per compiti simili. Puoi dare il via con la tua build automatizzata. (http://nant.sourceforge.net/)

Se si desidera qualcosa di più completo si può verificare Wix (http://wix.sourceforge.net/)

Ora sono davvero sicuri che tutto una build automatica della protesi, prende il via si desidera aggiornare il sito live? O vuoi dire che fai partire una build, usando il tuo strumento cc, e poi genera una build per andare in diretta?

Mi dispiacerebbe avere l'aggiornamento del sito live quando qualcuno ha verificato una nuova versione di un file.

Gli aggiornamenti del database saranno probabilmente l'aspetto più impegnativo. Tuttavia, finché ciò che viene archiviato per l'aggiornamento della banca dati è uno script di modifica, non è male.

+0

Al momento abbiamo 2 tipi di build. Uno è un build di sviluppo e l'altro un rilascio. Le build Dev vengono eseguite ogni xx minuti dopo un checkin di codice ed eseguono i test unitari ecc. Mentre una release è solo quando eseguiamo il kick-off e fa la maggior parte di ciò che fa una build di sviluppo ma in modalità release e la tagga come una versione in SVN. –

0

Sembra che le due funzioni principali per la distribuzione delle modifiche al codice siano: 1. Copia di file e 2. Esecuzione di modifiche di script DB. Se si guarda usando MsBuild Community Tasks ci sono un sacco di attività di compilazione a portata di mano che possono aiutarti lungo la strada. SqlExecute e RoboCopy suonano come se fossero tutto ciò che avresti bisogno di usare. Ciò richiederebbe la modifica dei file di progetto per estendere il loro comportamento di build, ma una volta terminato si sarebbe in grado di "scrivere" la porzione manuale di ciò che viene fatto.

Problemi correlati