Domanda

Nota: sono un principiante dell'integrazione continua

Qual è il "migliore" approccio per ottenere queste funzioni:

  1. Build (assembly e app Web)
  2. Test (MbUnit o NUnit)
  3. e se supera i test distribuire via FTP sul server principale (internet).

E cosa intendo per "migliore" è l'opzione più economica e facile da imparare (mal di testa basso).

È stato utile?

Soluzione

Ho scritto un post sul blog piuttosto dettagliato utilizzando TeamCity e progetti di distribuzione Web per automatizzare la compilazione e la distribuzione (locale) qui:

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

Ho quindi aggiunto a questo per mostrare l'aggiunta FTP

http: // www.diaryofaninja.com/blog/2010/09/21/continuous-integration-tip-1-ndash-ftp-deployment

Fondamentalmente il processo è così:

  • Utilizzando un server build di teamcity che scarico dal mio repository SVN
  • Compilare e distribuire il sito in una cartella locale sul server di compilazione
  • Lancio un client FTP da riga di comando che supporta lo scripting chiamato WinSCP utilizzando MSBUILD Task EXEC ( http://winscp.net/ )
  • Carica tutti i contenuti dei miei siti
  • Avere inserire la bevanda preferita

Mi assicuro quindi di distribuire solo il trunk del mio repository SVN e di sviluppare e testare tutto in un ramo prima di unirmi, in questo modo vengono distribuiti solo gli oggetti testati. Aggiungi i test automatizzati al tuo ciclo di costruzione e avrai una partita fatta in paradiso.

Altri suggerimenti

Vorrei andare con msbuild e mbunit per i test unitari. Per la parte FTP google per msbuild attività personalizzate con FTP e dovresti cucinare a gas.

Ho storicamente usato CruiseControl , che ha funzionato bene, ma ho anche sentito cose positive su TeamCity . Per quanto riguarda le attività FTP per MSBuild (che è sicuramente il modo in cui vuoi andare), ce ne sono alcune da trovare in rete. Quando ho controllato l'ultima volta (che non era abbastanza recente) tutto quello che ho trovato aveva uno o l'altro difetto, quindi ho finito per scriverne uno da solo (racchiudendo FtpWebRequest in .NET). Anche se questa potrebbe non essere la migliore implementazione FTP in circolazione, l'attività ha fornito la funzionalità di cui avevo bisogno (caricamento di strutture di directory, eliminazione remota). Immagino che oggi potrebbero essere disponibili attività che forniscono tale funzionalità (altrimenti forse dovrei semplicemente pubblicare le mie ...)

Facciamo la stessa cosa con Zed Builds and Bugs Manager di Hericus Software.

Dobbiamo combinare gli assembly .Net con le DLL C ++ e raggruppare il tutto in un'installazione Java (immagina quella confusione :-)). Usiamo anche FTP per caricare alcuni componenti della build (non il tutto) su altri sistemi che richiedono pezzi di ciò che la build produce.

Dopo che tutto è stato messo insieme, la cosa bella del server Zed è che diventa il nostro sistema in cui tutti sanno da dove ottenere i loro artefatti. Gestisce la promozione dal Dev al QA fino alla produzione e tiene traccia delle build attraverso questo ciclo di vita.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top