Qual è lo strumento di integrazione continua migliore per un progetto C ++? [chiuso]

StackOverflow https://stackoverflow.com/questions/145586

  •  02-07-2019
  •  | 
  •  

Domanda

Cruisecontrol e Hudson sono due popolari sistemi di integrazione continua. Sebbene entrambi i sistemi siano in grado di eseguire correttamente le build automatizzate, sembra molto più semplice creare uno script di compilazione batch o bash, quindi utilizzare lo scheduler o cron di Windows per pianificare le build.

Sono disponibili migliori sistemi di integrazione continua per progetti C ++? Oppure usare semplicemente uno script e uno scheduler nel modo più semplice?

È stato utile?

Soluzione

Abbiamo utilizzato CruiseControl per CI su un progetto C ++. Sebbene sia l'unica cosa per cui utilizziamo ant, lo script di compilazione ant per CruiseControl avvia il nostro normale script di compilazione, quindi è molto semplice e non abbiamo davvero bisogno di aggiornarlo da molto tempo. Pertanto, il fatto che CrusieControl sia basato su Java non è stato un problema per noi.

I principali vantaggi dell'utilizzo di qualcosa come il controllo automatico della velocità sono

  • Una bella pagina web che mostra lo stato della build
  • Invia un'email dopo ogni build o dopo build non riuscite
  • Crea automaticamente dopo un commit nel sistema di controllo del codice sorgente
  • Un plug-in firefox per monitorare lo stato della build
  • Mostra l'output per eventuali errori di compilazione.
  • Mostra quali file sono stati modificati dall'ultima build (ottimo per vedere quale sviluppatore ha rotto il buid)

Ovviamente puoi scrivere tu stesso una sceneggiatura che fa tutto questo, ma perché tutto funziona? Nel lungo periodo, il costo iniziale aggiuntivo per la configurazione di CruiseControl (o qualcosa di simile) è probabilmente molto inferiore rispetto al costo di gestione e aggiornamento di uno script di build CI personalizzato.

Se tutto ciò di cui hai bisogno è avviare una build giornaliera e un semplice script avviato da cron è sufficiente per le tue esigenze, allora fallo. Tuttavia, uno dei vantaggi di CI è che si ottiene un rapporto sullo stato della compilazione dopo ogni check in. Scrivere uno script per fare ciò richiede più lavoro e CruiseControl lo fa già.

Altri suggerimenti

Usiamo Hudson per CI e SonarQube per le metriche del codice. Sono integrati e Hudson ha una manciata di plugin che nessun cronjob può battere.

Un ottimo plugin è CI Game, che mantiene un punteggio su chi rompe le build e chi si impegna senza romperlo. Hudson ha plugin per giocare con VMWare, Selenium, SVN, CSV, Git. Ha una sindacazione RSS, che può aiutarti ad automatizzare ancora di più tutto il resto.

Hudson è fantastico ...

Abbiamo utilizzato Dart Dashboard . È open source ma guidato da KitWare . Da allora hanno cambiato il nome in CDash che presumo sia ancora capace. Stiamo eseguendo diversi tipi di test, inclusa l'integrazione notturna e continua su 10 piattaforme diverse sia in modalità debug che in modalità di rilascio, oltre a eseguire migliaia di test applicativi e riportare i risultati anche lì.

Sto usando Buildbot per motore Spring RTS progetto riuscito.

Puoi anche provare TeamCity di JetBrains . È un prodotto commerciale ma offre una licenza gratuita per un massimo di 20 configurazioni di build.

Una delle belle funzionalità di uno strumento di integrazione continua (CI) è che una build viene attivata ogni volta che qualcosa viene archiviato nel repository di controllo del codice sorgente.

Se questo non è qualcosa di cui hai bisogno, probabilmente sei meglio di usare l'utilità di pianificazione di Windows o i processi cron.

Inoltre, gli strumenti CI dispongono anche di una dashboard (web) e di funzionalità di registrazione avanzate.

La tua domanda mi sembra più " perché dovrei usare uno strumento CI " quindi " quale strumento CI dovrei usare " ;. Se uno script batch soddisfa le tue esigenze, ti preghiamo di usarlo. La (ri) creazione di un ambiente di compilazione diventa più semplice solo se non è necessario uno strumento CI come componente aggiuntivo. Se vuoi che il controllo del codice sorgente sia attivato, una dashboard, l'archiviazione dei risultati della vecchia build o altri log, usa uno strumento CI ed evita di sviluppare tutte queste funzioni negli script batch o shell.

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