Jenkins Git Integration - Användbar för varje DevOps Professional



Den här bloggen diskuterar integrationen av Git med Jenkins. Det diskuterar också fördelarna med att integrera Git med Jenkins tillsammans med demo.

är verkligen ofullständig utan Jenkins. Jenkins tillsammans med Git är en underbar kombination. Så i den här artikeln kommer jag att prata om Jenkins Git Integration och dess fördelar. Tips som vi ska täcka är följande:

Så låt oss börja med vårt första ämne.





Vad är Git - Varför Git Kom till existens?

Vi vet alla 'Nödvändigheten är modern till alla uppfinningar'. På samma sätt uppstod Git för att uppfylla vissa nödvändigheter som utvecklarna mötte inför Git. Så, låt oss ta ett steg tillbaka för att lära oss allt om versionskontrollsystem (VCS) och hur Git uppstod.

Versionskontroll är hantering av ändringar av dokument, datorprogram, stora webbplatser och annan insamling av information.



Det finns två typer av VCS:

  • Centraliserat versionskontrollsystem (CVCS)

  • Distribuerat versionskontrollsystem (DVCS)



Centraliserad VCS

Ett centraliserat versionskontrollsystem (CVCS) använder en central server för att lagra alla filer och möjliggör teamsamarbete. Det fungerar på ett enda arkiv där användare kan få direkt åtkomst till en central server.

Se diagrammet nedan för att få en bättre uppfattning om CVCS:

Förvaret i ovanstående diagram indikerar en central server som kan vara lokal eller fjärr som är direkt ansluten till var och en av programmerarens arbetsstationer.

Varje programmerare kan extrahera eller uppdatering deras arbetsstationer med data som finns i förvaret. De kan också göra ändringar i data eller begå till förvaret. Varje operation utförs direkt på förvaret.

Även om det verkar ganska bekvämt att underhålla ett enda arkiv, har det några stora nackdelar. Några av dem är:

  • Det är inte lokalt tillgängligt, vilket betyder att du alltid måste vara ansluten till ett nätverk för att utföra någon åtgärd.

    skillnaden mellan aws och azure
  • Eftersom allt är centraliserat, kommer den centrala servern att krascha eller bli skadad i alla fall leda till att projektets data förloras.

Det är här Distribuerad VCS löser problemet.

Distribuerad VCS

Dessa system är inte nödvändigtvis beroende av en central server för att lagra alla versioner av en projektfil.I Distribuerad VCS har varje bidragsgivare en lokal kopia eller 'klon' av huvudförvaret. Här upprätthåller alla en egen lokal databas som innehåller alla filer och metadata som finns i huvudförvaret.

Du kommer att förstå det bättre genom att hänvisa till diagrammet nedan:

Som du kan se i ovanstående diagram upprätthåller varje programmerare ett lokalt arkiv på egen hand, vilket faktiskt är kopian eller klonen av det centrala arkivet på hårddisken. De kan begå och uppdatera sitt lokala förvar utan störningar.

De kan uppdatera sina lokala förråd med nya data från centralservern genom en operation som kallas “ dra ”Och påverkar ändringar av huvudförvaret genom en operation som kallas” tryck ”Från deras lokala förvar.

vad är instansvariabler i java

Låt oss nu försöka veta om definitionen av Git.

  • Git är ett distribuerat versionskontrollverktyg som stöder distribuerade icke-linjära arbetsflöden genom att tillhandahålla datasäkerhet för att utveckla kvalitetsprogramvara. Verktyg som Git möjliggör kommunikation mellan utvecklingen och driftsteamet.

  • Normalt när du utvecklar ett stort projekt har du ett stort antal medarbetare. Så det är mycket viktigt att ha kommunikation mellan medarbetarna samtidigt som man gör ändringar i projektet.

  • Kommunicera meddelanden i Git spelar en mycket viktig roll för att kommunicera mellan teamet. Förutom kommunikation är det viktigaste skälet att använda Git att du alltid har en stabil version av koden med dig.

  • Därför spelar Git en viktig roll för att lyckas med DevOps.

Vad är Jenkins?

Jenkins är ett automatiserat verktyg för öppen källkod skrivet i Java med plugins byggda för kontinuerlig integrationsändamål. Jenkins används för att kontinuerligt bygga och testa dina programvaruprojekt, vilket gör det lättare för utvecklare att integrera förändringar i projektet och gör det lättare för användare att få en ny version. Det låter dig också kontinuerligt leverera din programvara genom att integrera med ett stort antal test- och distributionstekniker.

Med Jenkins kan organisationer påskynda programvaruutvecklingsprocessen genom automatisering. Jenkins integrerar livscykelprocesser av alla slag, inklusive build, dokument, test, paket, scen, distribution, statisk analys och mycket mer.

Jenkins uppnår kontinuerlig integration med hjälp av plugins. Plugins möjliggör integrering av olika DevOps-steg. Om du vill integrera ett visst verktyg måste du installera plugins för det verktyget. Till exempel Git, Maven 2-projekt, Amazon EC2, HTML-utgivare, etc.

Fördelarna med Jenkins inkluderar:

  • Det är ett öppen källkodsverktyg med bra community-stöd.

  • För lätt att installera.

  • Den har mer än 1000 plugins för att underlätta ditt arbete. Om ett plugin inte finns kan du koda det och dela det med communityn.

  • Det är kostnadsfritt.

  • Den är byggd med Java och därmed bärbar till alla större plattformar.

Du vet nu hur Jenkins övervinner de traditionella SDLC-bristerna. Tabellen nedan visar jämförelsen mellan ”Före och efter Jenkins”.

Innan JenkinsEfter Jenkins
Hela källkoden byggdes och testades sedan. Det var svårt och tidskrävande att hitta och åtgärda buggar vid bygg- och testfel, vilket i sin tur saktar ner leveransprocessen för programvaran.Varje engagemang i källkoden byggs och testas. Så istället för att kontrollera hela källkoden behöver utvecklare bara fokusera på ett visst engagemang. Detta leder till frekventa nya programvaruversioner.
Utvecklare måste vänta på testresultatUtvecklare känner till testresultatet för varje åtagande som gjorts i källkoden på språng.
Hela processen är manuellDu behöver barabegå ändringar i källkoden och Jenkins automatiserar resten av processen åt dig.

Varför används Jenkins och Git tillsammans?

Som diskuterats tidigare, är en källkontrollchef. Det är där du behåller källkoden för att spåra alla kodförändringar som sker över tiden och för att basera versionerna när de är redo för släpp.

Jenkins å andra sidan är en kontinuerlig integrationslösning. Det är tänkt att automatisera de flesta uppgifter som en utvecklare måste göra när man utvecklar en ny applikation (kodkvalitetskontroller, byggande, arkivering av byggartefakter, integrationstest, distribution till olika miljöer etc.) Utan en CI-lösning, en utvecklare måste spendera mycket tid på att göra dessa repetitiva, icke-produktiva uppgifter.

Fördelar:

  • Git och Jenkins är båda mycket kraftfulla, men med stor kraft kommer ett stort ansvar. Det är ganska vanligt att motivera en onödig mängd komplikation i en byggledning helt enkelt för att du kan.
  • Medan Jenkins har många snygga knep i ärmen, är det lätt att utnyttja funktionerna i Git, eftersom det gör releasehantering och bug tracking betydligt enklare över tid.
  • Vi kan göra detta genom att vara noga med versionerna av koden som vi bygger och märka dem på rätt sätt. Detta håller släpprelaterad information nära koden , i motsats till att förlita sig på Jenkins byggnummer eller andra moniker.
  • Skyddar Git-grenar minskar risken för mänskliga fel och automatisera så många uppgifter som möjligt minskar hur ofta vi måste plåga (eller vänta på) dessa människor.

Exempel:

Låt oss ta exemplet på en ny funktion i en webbapplikation. En utvecklare kommer att identifieras och tilldelas uppgiften, han tar den befintliga kodbasen från källkontrollen - säg Git, gör sina ändringar, utför enhetstester, säkerställer kodkvaliteten manuellt och kontrollerar den nya koden igen i Git.

split-funktion i java-exempel

Sedan måste han bygga koden, distribuera den till en integrationsinstans, köra integrationstest och när ändringen verkar tillfredsställande, ta upp en begäran om produktionsdistribution. Om vi ​​bara hade en minion för att ta hand om denna testning, byggnad, kvalitetskontroller och distributionssektioner kunde den dåliga utvecklaren ha fokuserat bättre på de saker han är riktigt bra på - implementera och förbättra funktionens logik.

Denna minion är Jenkins. Det fungerar som en orkestrator för att köra alla dessa aktiviteter när ändringen har kontrollerats i källkontrollen (Git) och ger därmed snabb feedback till utvecklaren om ändringarna han har gjort är tillräckligt bra för produktionsdistribution eller inte.Det är en extremt flexibel öppen källkod och har massor av plugins som kan göra nästan vad du än vill.

Demo

Här kommer vi att se hur man integrerar Git med Jenkins. Det finns 5 steg som du måste följa:

1. Skapa ett provprogram:

Du kan skapa valfritt exempelprogram som Java eller Python eller något annat program. Här kommer vi att skriva ett enkelt Python-program som skriver Hello, World!

2. Skapa ett Jenkins-jobb:

  • Här måste du först starta Jenkins med kommandotolken.

  • För det måste du först navigera till Jenkins-platsen på ditt system och använda kommandot java -jar jenkins.war

  • När du har kört det här kommandot öppnar du webbläsaren och går till Jenkins hemsida med hjälp av länken lokal värd: 8080 . Detta är standardportnumret.

  • Öppna Jenkins hemsida av ange användarnamn och lösenord.

  • Klicka på för att skapa ett projekt Nytt föremål och ange Projektnamn och välj Freestyle-projekt . Klicka på OK.

3. Lägg till detta program i Github:

  • Öppna git bash på ditt system. Navigera till platsen för ditt program. Initiera ett tomt arkiv med kommandot git init .

  • Använd kommandot git add. för att lägga till filen i iscensättningsområdet från arbetskatalogen.

  • Lägg nu till filen i det lokala arkivet med kommandot git commit -m “demo.py-fil tillagd” .

  • Nu måste du tryck den här filen till fjärrförvaret. För att göra det, gå till ditt GitHub-konto och skapa ett nytt offentligt arkiv. Kopiera nu platsen för detta förvar och gå till git bash terminal. Här skriver du kommandot git remote lägg till ursprung . Eftersom du nu har anslutit till fjärrförvaret kan du nu trycka din kod dit med kommandot git push -u origin master. För att verifiera detta, gå till GitHub-kontot och uppdatera sidan. Du kommer att se filen läggs till där.

4. Lägg till Git Plugin i Jenkins:

  • Gå till Jenkins hemsida Hantera Jenkins .

  • Klicka sedan på Hantera plugins . Här har du fått Git-plugin i det installerade avsnittet. Om det inte är tillgängligt här, sök efter det i det tillgängliga avsnittet och ladda ner det.

5. Konfigurera Jenkins-jobbet för att utlösa build:

  • Gå till projektet i Jenkins som vi skapade i steg 2. Här i avsnittet Källkodhantering, välj git och ange länken till det offentliga arkivet som du skapade i steg 3. Nästa i Bygg Triggers avsnitt , Klicka på Poll SCM-alternativ . Här i schemat-delen måste du ange fem asterisker åtskilda av mellanslag. Detta är ingenting annat än cronsyntax för ditt jobb. Detta innebär att Jenkins kommer att kontrollera om det finns några ändringar i källkoden varje minut och om det finns någon förändring kommer den att utlösa Jenkins-byggnaden.

  • Klicka på Tillämpa och sedan vidare Spara . Klicka sedan på på projektets startsida Bygg nu . Detta kommer att köra projektet och i konsolutgången kan du se ditt programutdata status för ditt Jenkins-jobb. Om allt är okej visas det som Framgång .

Så detta görs Jenkins Git Integration. Med detta har vi kommit till slutet av den här artikeln om Jenkins Git Integration. Jag hoppas att du har haft den här artikeln.

Nu när du har förstått vad Jenkins Git Integration är, kolla in det här av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Edureka DevOps Certification Training-kursen hjälper eleverna att förstå vad som är DevOps och få expertis inom olika DevOps-processer och verktyg som Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack och GIT för att automatisera flera steg i SDLC.

Har du en fråga till oss? Vänligen nämna det i kommentarfältet så återkommer vi till dig