Così, un amico ed io abbiamo discusso di integrazione continua e script bat/powershell contro server CI come CruiseControl.Net o Hudson.Integrazione continua: PowerShell vs CI Server (CC.NET o Hudson)
Il seguente pseudo script di powershell funziona per l'aggiornamento da SVN, generazione di msbuild, distribuzione/copia, aggiornamento di un numero di build/revisione nell'app e di e-mail su build non riusciti. Il prossimo passo sarebbe quello di aggiungere chiamate a MSTest ed e-mail i risultati quando non ha successo.
- aggiornamento svn
- msbuild> build_deploy_development_out_msbuild
- ([xml] (svn informazioni --xml)). Info.entry.commit.revision + [char] 13 + [char] 10 + (echo % date%% time%)> build_revision_number.html
- $ linenum = Select-String build_deploy_development_out_msbuild -pattern "Build Failed" | Select-Object Linenumber
- $ smtp = New-Object System.Net.Mail.SMTPClient -ArgumentList localhost | if ($ linenum> 0) $ smtp.Send ("Da: Email", "A: Email", "build fallito", "build fallito ... qualcuno deve morire!")
Questo ha portami alla domanda sul valore dei server CI, quando puoi scrivere i tuoi script di shell per raggiungere lo stesso obiettivo, usando gli strumenti specifici del progetto (strumento di costruzione, controllo del codice sorgente, test delle unità) (ad esempio, msbuild, nant, svn , git, nunit, mstest, ecc.)
Non ho ancora riscontrato i costi di manutenzione. Volevo ottenere opinioni sugli altri sul tuo copione proprio contro un CruiseControl.Net o Hudson. Si noti che non ho esperienza con i server CI, quindi la domanda, quindi per favore non considerarla critica per i server CI; Semplicemente non conosco la risposta migliore e ho pensato di chiedere alla comunità.
I migliori auguri! Pete Gordon
Questo dovrebbe essere wiki della comunità, in quanto non esiste una risposta chiara –
Perché è incluso anche CC.NET o Hudson? Questa sembra una domanda di PowerShell VS CI. Perché la semantica? – TheOptimusPrimus