Domanda

Per facilitare i nostri test di rilascio, stiamo cercando un sistema per costruire automaticamente (testare) i nostri progetti software su una varietà di architetture. I nostri vincoli sono:

  1. Il codice da compilare è scritto in diverse lingue, tra cui Python, Java e C.
  2. Abbiamo diverse architetture di distribuzione distinte.
  3. Abbiamo più progetti, che vorremmo costruire e testare in modo indipendente.
  4. Il nostro sistema di controllo del codice sorgente è Subversion e il sistema dovrebbe integrarsi con quello.
  5. La soluzione dovrebbe idealmente essere open source.

Abbiamo esaminato:

  • Artifactory + Continuum : bello in qualche modo, ma è fortemente incentrato su Java, con supporto Python limitato o inesistente.

  • Buildbot : questo ci dà quasi tutte le funzionalità di cui abbiamo bisogno, tranne che non supporta più progetti, il che è un grosso problema per noi.

Cosa consiglieresti? Che cosa usi?

È stato utile?

Soluzione

Hai guardato Hudson ? L'ho usato su progetti .Net con molto successo anche se è uno strumento un po 'incentrato su Java. Supporta sovversione e ha una comunità di plug-in attiva e diversificata che gli consente di lavorare con molte lingue diverse. È open source e funziona su molte piattaforme. L'ho trovato relativamente facile da configurare e gestire.

Altri suggerimenti

Dai un'occhiata a TeamCity . Funziona come un incantesimo per noi.

Da quando mi sono allontanato da buildbot ho usato cruisecontrol e ne sono stato soddisfatto fino a un certo punto. I miei progetti attuali consistono nella costruzione di c ++ & amp; ruby (con alcune estensioni c) a più architetture e l'unico problema è che la maggior parte delle funzionalità richiede formica. E attualmente un'unica istanza di cc sta realizzando circa 40 progetti diversi. Le fasi di costruzione che abbiamo fatto consistono nell'esecuzione di unittests, alcuni test funzionali, la copertura del codice e la creazione di un rapporto su questi, l'aggiornamento del database dei pacchetti, l'integrazione dell'IRC, la creazione e il repository di pacchetti software update (debian)

L'unico inconveniente è che la maggior parte delle funzionalità più fantasiose richiederebbe che la build (Atleast quando all'interno di cc build loop) avvenga con la formica.

Ho anche valutato Hudson, sembra essere un po 'più flessibile di cruisecontrol ma personalmente non mi piace l'interfaccia di configurazione.

Sono uno sviluppatore di CruiseControl e lavoro per Urbancode che crea AnthillPro , così posso parlare dei punti di forza di quelli. Sono anche uno degli organizzatori di CITCON , quindi ho abbastanza familiarità con quasi tutte le offerte nello spazio .

CruiseControl o Hudson sono entrambi ottimi strumenti di CI open source. Trovo che CC sia davvero facile da personalizzare ed estendere e ci sono molti plugin che sono stati aggiunti nel corso della sua durata di 8 anni. Hudson è più recente e più facile per la maggior parte delle persone iniziare; è semplicissimo far funzionare il tuo primo progetto usando la configurazione della GUI mentre CC richiede confusione nei file XML. Hudson ha anche una community di plugin attiva e sta rapidamente aggiungendo nuove funzionalità.

Tuttavia, a seconda della complessità e dei requisiti dei tuoi progetti, potresti trovare uno strumento commerciale come AnthillPro che si adatterebbe meglio. Le ragioni per cui l'aggiornamento da CC o Hudson ad AHP variano da azienda a azienda, ma alcune risposte tipiche includono la possibilità di impostare distribuzioni self-service con controllo degli accessi in base all'ambiente, il desiderio di concatenare più build / flussi di lavoro, la gestione integrata delle dipendenze, il repository di artefatti o la capacità di riunire i dati da una serie di strumenti diversi & amp; si sviluppa attraverso il ciclo di vita.

Non tutti hanno bisogno di quelle capacità, ma le persone che trovano l'aggiornamento valgono i soldi.

Perché non dare un'occhiata anche a CI Factory .

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