Jenkins vs Travis-CI. Quale useresti per un progetto Open Source? [chiuso]


270

Per il mio progetto devo scegliere tra Jenkins e Travis-CI. Uso Jenkins da anni ma ho anche letto buone recensioni su Travis-CI.

Quale useresti per un progetto Open Source? Quali sono i principali benefici o vantaggi di entrambi?

Risposte:


293

Travis-ci e Jenkins, mentre entrambi sono strumenti per l'integrazione continua sono molto diversi.

Travis è un servizio ospitato (gratuito per open source) mentre è necessario ospitare, installare e configurare Jenkins.

Travis non ha lavori come in Jenkins. I comandi da eseguire per testare il codice sono presi da un file chiamato .travis.ymlche si trova lungo il codice del progetto. Ciò semplifica avere codici di test diversi per ramo poiché ogni ramo può avere la propria versione del file .travis.yml.

Puoi avere una funzione simile con Jenkins se usi uno dei seguenti plugin:

  • Travis YML Plugin - avviso: non sembra essere popolare, probabilmente non presenta funzionalità complete rispetto al vero Travis.
  • Jervis - una modifica di Jenkins per farlo leggere crea lavori da un .jervis.ymlfile trovato nella radice del codice del progetto. Se .jervis.ymlnon esiste, tornerà .travis.ymlinvece a utilizzare il file.

Esistono altri servizi ospitati che potresti prendere in considerazione anche per l'integrazione continua (elenco non esaustivo):


Come scegliere?

Potresti voler rimanere con Jenkins perché ne hai familiarità o non vuoi dipendere da terze parti per il tuo sistema di integrazione continua. Altrimenti lascerei cadere Jenkins e andrei con uno dei servizi di CI ospitati gratuitamente in quanto ti risparmiano un sacco di problemi (host, installazione, configurazione, preparazione dei lavori)

A seconda di dove è ospitato il tuo repository di codice, farei le seguenti scelte:

  • in-house → Jenkins o gitlab-ci
  • Github.com → Travis-CI

Per configurare Travis-CI su un progetto github, tutto ciò che devi fare è:

  • aggiungi un file .travis.yml alla radice del tuo progetto
  • crea un account su travis-ci.com e attiva il tuo progetto

Le funzionalità che ottieni sono:

  • Travis eseguirà i test per ogni spinta effettuata sul repository
  • Travis eseguirà i test su ogni richiesta di pull che i contributori faranno

25
Nella mia esperienza, l'uso di Jenkins su Travis ti farà anche risparmiare un sacco di problemi ( .travis.yml!) Ho diversi progetti github per i quali sto eseguendo il mio Jenkins e non me ne pento un po '. Se hai la possibilità di gestire il tuo Jenkins, ti consiglio vivamente questa opzione. È bello avere il controllo al 100% del tuo ambiente CI.
Simon Forsberg,

21
Il plug-in Pipeline Jenkins (che ha lo scopo di sostituire progetti in stile libero nella maggior parte delle situazioni) consente di inserire lo script groovy della pipeline in un file (in genere denominato "Jenkinsfile") nel progetto, consentendogli le stesse funzionalità menzionate in Travis-CI sopra, con quel vantaggio in più di essere supportato dal team Jenkins.
KhainTCore

48

Ho lavorato su Travis e Jenkins: elencherò alcune delle caratteristiche di entrambi:

Configurazione dell'elemento della configurazione per un progetto

Travis arriva al primo posto. È molto facile da configurare. Richiede meno di un minuto per l'installazione con GitHub.

  1. Accedi a GitHub
  2. Crea Web Hook per Travis ( modifica:
  3. Torna su Travis e accedi con le tue credenziali GitHub
  4. Sincronizza il tuo repository GitHub e abilita le richieste Push and Pull.

Jenkins:

  1. Crea un ambiente (Master Jenkins)
  2. Crea hook web
  3. Configura ogni lavoro (richiede tempo rispetto a Travis)

Rieseguire build

Travis: Chiunque abbia accesso in scrittura su GitHub può rieseguire la build facendo clic su `riavvia build

Jenkins: riesegui build basate su una frase. Fornisci il testo della frase nella descrizione PR / commit, ad esempio reverify jenkins.

Ambiente di controllo

Travis: Travis fornisce ambiente ospitato. Installa il software richiesto per ogni build. È un processo che richiede tempo.

Jenkins: installazione unica. Installa tutto il software richiesto su un nodo / macchina slave, quindi crea / verifica su un ambiente preinstallato.

Costruire registri:

Travis: supporta i log di compilazione da posizionare in Amazon S3.

Jenkins: facile da configurare con il plug-in di manufatti build.


Potresti dire, per favore, cos'è S3?
Pooja,


30

Suggerirei Travis per il progetto Open source. È semplice da configurare e utilizzare.

Semplici passaggi per l'installazione:

  1. Dovrebbe avere un account GITHUB e registrarsi nel sito Web di Travis CI utilizzando il proprio account GITHUB.
  2. Aggiungi il .travis.ymlfile nella radice del tuo progetto. Aggiungi Travis come servizio nella pagina delle impostazioni del repository.

Ora ogni volta che ti impegni nel tuo repository, Travis costruirà il tuo progetto. È possibile seguire semplici passaggi per iniziare con Travis CI.


7
Un avvertimento per l'utilizzo di Travis CI per Open Source: esegue build e test su Linux o OSX, non su Windows. Quindi, se il tuo progetto è, ad esempio, .NET o PowerShell, dovrà essere scritto in una versione multipiattaforma di .NET (Mono o .NET Core) o PowerShell (PowerShell Core) per poter utilizzare Travis CI . Uno strumento CI ospitato più compatibile con Windows è Appveyor ..
Simon Tewsi
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.