Hva er CI?
Kontinuerlig integrasjon er en programvareutviklingsmetode der medlemmer av teamet kan integrere arbeidet sitt minst en gang om dagen. I denne metoden blir hver integrasjon sjekket av en automatisert versjon for å søke etter feilen. CI-konseptet ble først introdusert for over to tiår siden for å unngå "integrasjonshelvete", som skjer når integrering blir utsatt til slutten av et prosjekt.
I denne veiledningen vil du lære
- Hva er CI?
- Hva er Travis CI?
- Hva er Jenkins?
- Hva gjør Travis?
- Hva gjorde Jenkin?
- Travis CI-funksjoner:
- Jenkin Funksjoner:
- Travis vs. Jenkins
- Popularitetsindeks
- Som er bedre?
Hvordan fungerer CI?
- Utviklere skriver kode og forplikter endringer i det delte depotet
- Etter det overvåker CI-serveren depotet og evaluerer alle endringene
- CI bygger systemet og gjennomfører integrering og enhetstester
- Serveren frigjør distribuerbare gjenstander
- Den kontinuerlige integrasjonsserveren tilordner en build-tag til versjonen og bygningskoden
- Deretter rapporterer CI-serveren teamet om vellykket bygging. Hvis testene mislykkes, varsler serveren om hendelsen til utviklingsteamet. Teamet vil løse problemene så raskt som mulig.
HOVEDFORSKJELL
- Travis CI er et kommersielt CI-verktøy mens Jenkins er et open source-verktøy.
- Travis CI tar veldig kortere tid å komme i gang mens Jenkins trenger omfattende oppsett.
- Travis CI tilbyr mindre tilpasningsalternativer, mens Jenkins tilbyr enorme tilpasningsalternativer.
- Travis CI har en YAML-konfigurasjonsfil mens Jenkins gir et fullstendig konfigurasjonsalternativ til brukeren.
Hva er Travis CI?
Travis CI var det første CI som et serviceverktøy. Det introduserte en ny tilnærming til å bygge kode i skyen. Dette CI-verktøyet lar brukeren registrere seg, koble lagringsstedet sitt, bygge, samt teste appene sine.
Travis CI-verktøyet kan enkelt integreres med de vanlige skylagrene som GitHub og Bitbucket. Det tilbyr mange automatiserte CI-alternativer som reduserer behovet for en dedikert server ettersom Travis CI-serveren er vert i skyen. Dette lar deg teste i forskjellige miljøer, på forskjellige maskiner, og kjøre på forskjellige operativsystemer.
Travis CI er gratis for open source-prosjekter. For kommersielle prosjekter må du kjøpe en forretningsplan.
Hva er Jenkins?
Jenkins er et prisbelønt kontinuerlig integrasjonsverktøy som overvåker gjennomføring av distribusjonssykluser. Det startet som et sideprosjekt av Suns programvareingeniørgruppe. Senere ble den utvidet som et av de populære open source CI-verktøyene som hjelper programvareutviklingsteam til å automatisere distribusjonen.
Jenkins er et Java-basert verktøy, som betyr at du bare trenger Java Runtime Environment for å betjene det. Derfor kan Jenkins installeres på hvilket som helst operativsystem der Java kjører.
I dette verktøyet kan utviklere også spesifisere betingelser for tilpassede bygg. Jenkins støtter et massivt pluginarkiv. Dette gjør at utviklere kan endre hvordan Jenkin ser ut og fungerer.
Videre kommer Jenkins Pipeline-pakken med spesialtillegg som lar utviklere modellere enkle og komplekse leveringsrørledninger ved hjelp av DSL (Digital Subscribe line) -metoden.
Hva gjør Travis?
Travis CI tilbyr følgende fordeler:
- Du kan overvåke GitHub-prosjekter
- Kjører Test og generer resultater raskt. Parallell testutførelse er mulig.
- Bygg gjenstander og sjekk kodekvaliteten
- Enkel distribusjon til skytjenester
- Det kan identifisere små så vel som store kodeendringer.
- Utviklere kan bruke Travis CI til å se testene når de kjører.
- Verktøyet integreres med Slack, HipChat, Email, etc.
Hva gjør Jenkin?
Jenkins lar deg automatisere bygge, teste og distribuere oppgaver. Verktøyet gir støtte for forskjellige operativsystemer som Windows, Mac OSX og Linux-systemer.
Videre gir Jenkins deg muligheten til raskt å bygge og teste koden din for å få tidlig tilbakemelding på om den er klar for produksjon eller ikke. I de fleste tilfeller vil Jenkin kreve få modifikasjoner i henhold til teamets tilpassede krav.
Travis CI-funksjoner:
- Automatisk integrasjon med GitHub
- Datatilgang for å bygge pull-forespørsler
- Støtte for 21 språk som Android, C, C #, C ++, Java, JavaScript (med Node.js), Perl, PHP, Python, R, Ruby, etc
- Forhåndsinstallert bygge- og testverktøy
- Tilgjengelige tjenester - databaser, meldingskøer osv.
- Implementering til flere skytjenester
- Krypter variabler eller filer for sikre omgivelser
- Virtuelle maskiner gjenskapes etter hver bygging
- CLI-klient og API for skripting
- Leveres med gratis skybasert hosting som ikke krever vedlikehold eller administrasjon.
Jenkin Funksjoner:
- Enkel å installere, oppgradere og konfigurere
- Distribuerte bygninger
- Overvåking av eksterne jobber
- Mer enn 600 plugins for å tilpasse Jenkins-miljøet ditt
- Over 1000+ offentlige repositorier på Github, 500+ bidragsytere, sterk forpliktende aktivitet
- Støtte for ulike autentiseringsmetoder, versjonskontrollsystemer, varsling osv.
- Jenkins tilbyr API for ekstern tilgang og dets funksjoner.
- Gi kraftig CI / CD-verktøy for store prosjekter
- Den støtter forskjellige jobbmodeller som Freestyle, Pipeline, etc.,
- Lar utviklere legge til utvidelsene sine
- Kompatibel med Docker, Libvirt, Kubernetes og mange andre programmer
Travis vs. Jenkins
Parameter | Jenkin | Travis |
---|---|---|
Koste | Jenkins er gratis. Men utviklingsteamet må kjøre og vedlikeholde sin dedikerte server. Dette kan betraktes som en ekstra kostnad. | Travis CI-virksomhetssuiter starter på $ 129 per måned. Kostnadsøkning basert på støttenivået du trenger. |
Sett opp tid | Jenkins trenger forseggjort oppsett. Så du får veldig lang ventetid for fullstendig installasjon. | Det tar veldig kortere tid å komme i gang. Opprett en konfigurasjonsfil og begynn å integrere. |
Opptreden | Hvis du leter etter et CI-verktøy med ubegrensede tilpasningsalternativer, er Jenkins det beste valget for deg. | Travis CI er det beste valget Hvis du jobber i et open source-prosjekt. |
Verktøytype | Det er en åpen kildekode som er gratis å bruke verktøyet. | Det er et kommersielt CI-verktøy |
Bruk | Lett å bruke | Fleksibel å bruke |
Github | Bra for Github | Utmerket for Github |
Brukerstøtte | Omfattende støtte fra samfunnet. | Begrenset støtte for samfunnet. |
Fordeler |
|
|
Ulemper |
|
|
Bruksplaner | Gratis | Gratis for open source-prosjekter. Imidlertid betalt for Enterprise. |
Servermaskin | Serverbasert | Sky-basert |
Tilpasningsalternativer | Mer | Mindre |
Konfigurasjon | Fullt tilpasses | YAML |
Kontroll på systemet | Full | Veldig mindre |
Popularitetsindeks
Antall spørsmål merket Jenkins og Travis i Stack Overflow.
Som er bedre?
Med den ovennevnte diskusjonen kan vi altså forstå at Travis og Jenkins begge tilbyr fantastiske funksjoner. Imidlertid er små open source-prosjekter best egnet for Travis CI, da det er enkelt å kjøre og raskt å sette opp. På den annen side passer store bedrifter best til Jenkins, da de tilbyr gratis lisensiering for et privat prosjekt og et bredt spekter av tilpassbare funksjoner. Så vi kan si at begge disse kontinuerlige integrasjonsverktøyene er gode på deres måte.