Continuo System Integration per un Python Codebase

voti
48

Sto iniziando a lavorare su un progetto hobby con un pitone base di codice e mi piacerebbe istituire una qualche forma di integrazione continua (cioè in esecuzione di una batteria di test-casi ogni volta che un check-in viene effettuato e l'invio di nag e-mail al responsabile persone quando le prove non riescono) simili a CruiseControl o TeamCity .

Mi rendo conto che avrei potuto fare questo con ganci nella maggior parte dei VCSes , ma che richiede che i test eseguiti sulla stessa macchina del server di controllo di versione, che non è elegante come vorrei. Qualcuno ha qualche suggerimento per un piccolo,, sistema di integrazione continua open-source di facile utilizzo adatte per un Python base di codice?

È pubblicato 02/08/2008 alle 17:43
fonte dall'utente
In altre lingue...                            


7 risposte

voti
26

Una possibilità è Hudson. E 'scritto in Java, ma non c'è l'integrazione con i progetti di Python:

Hudson abbraccia Python

Non ho mai provato io stesso, però.

( Aggiornamento , settembre 2011: Dopo una disputa sul marchio Hudson è stato rinominato in Jenkins .)

Risposto il 02/08/2008 a 17:56
fonte dall'utente

voti
25

Corriamo Buildbot - Trac sul posto di lavoro. Non ho usato troppo dato che la mia base di codice non fa parte del ciclo di uscita ancora. Ma corriamo il test su ambienti diversi (OSX / Linux / Win) e invia messaggi di posta elettronica - ed è scritto in Python.

Risposto il 02/08/2008 a 18:06
fonte dall'utente

voti
17

In secondo luogo il Buildbot - integrazione Trac. Potete trovare ulteriori informazioni su l'integrazione sul sito Buildbot . Al mio lavoro precedente, abbiamo scritto e abbiamo usato il plugin accennano (tracbb). Quello che il plug-in fa è riscrivere tutti gli URL buildbot modo da poter utilizzare Buildbot dall'interno Trac. ( Http://example.com/tracbb ).

La cosa veramente bella di Buildbot è che la configurazione è scritto in Python. È possibile integrare il proprio codice Python direttamente alla configurazione. E 'anche molto facile da scrivere i propri BuildSteps per eseguire compiti specifici.

Abbiamo usato BuildSteps per ottenere la fonte da SVN, tirare le dipendenze, pubblicare i risultati dei test a WebDAV, eccetera.

Ho scritto un'interfaccia X10 e quindi abbiamo potuto inviare segnali con i risultati di build. Quando la costruzione è fallito, abbiamo acceso una lampada di lava rossa. Quando la costruzione è riuscito, una lampada di lava verde accesa. Bei tempi :-)

Risposto il 03/08/2008 a 11:09
fonte dall'utente

voti
17

Usiamo sia Buildbot e Hudson per lo sviluppo Jython. Entrambi sono utili, ma hanno diversi punti di forza e di debolezza.

la configurazione di Buildbot è puro Python e abbastanza semplice una volta a ottenere il blocco di esso (vedi la documentazione API epydoc-generato per le informazioni più attuali). Buildbot rende più facile per definire le attività che non prevedono sperimentazioni e distribuire i tester. Tuttavia, ha in realtà alcun concetto di singole prove, solo testuali, HTML e uscita sintesi, quindi, se si vuole avere più livelli di uscita di prova sfogliabile e così via dovrete costruire da soli, o semplicemente usare Hudson.

Hudson ha il supporto formidabile per la foratura giù da risultati totali nella suite di test e prove individuali; è grande anche per il confronto uscita di test tra le costruisce, ma la (master / slave) roba distribuito è relativamente più complicata, perché avete bisogno di un ambiente Java sugli schiavi troppo; Inoltre, Hudson è meno tollerante di collegamenti di rete a fiocchi tra il master e slave.

Quindi, per ottenere i benefici di entrambi gli strumenti, si corre una singola istanza di Hudson, che cattura i fallimenti dei test comuni, allora facciamo una regressione multi-piattaforma con Buildbot.

Ecco i nostri casi:

Risposto il 14/09/2008 a 23:11
fonte dall'utente

voti
7

Stiamo utilizzando Bitten wich è integrato con trac. Ed è basato su Python.

Risposto il 16/09/2008 a 15:51
fonte dall'utente

voti
6

TeamCity ha qualche Python integrazione .

Ma TeamCity è:

  • non open-source
  • non è piccolo, ma ricco di funzionalità
  • è gratuito per le squadre medio-piccole.
Risposto il 22/09/2008 a 20:18
fonte dall'utente

voti
5

Ho ottime esperienze con Travis-CI per basi di codice più piccoli. I vantaggi principali sono:

  • l'installazione viene eseguita in meno della metà di uno schermo di file di configurazione
  • si può fare la propria installazione o semplicemente utilizzare la versione gratuita in hosting
  • configurazione semiautomatica per repository GitHub
  • nessun bisogno sul sito web; login tramite GitHub

Alcune limitazioni:

  • Python non è supportato come un linguaggio di prima classe (al momento della scrittura, ma è possibile utilizzare pip e apt-get per installare le dipendenze python; vedi questo tutorial )

  • codice deve essere ospitato su GitHub (almeno quando si utilizza la versione ufficiale)

Risposto il 02/02/2012 a 19:42
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more