Jenkins Git Integration - Nyttig til enhver DevOps Professional



Denne blog diskuterer om integrationen af ​​Git med Jenkins. Det diskuterer også fordelene ved at integrere Git med Jenkins sammen med demo.

er bestemt ufuldstændig uden Jenkins. Jenkins sammen med Git er en vidunderlig kombination. Så i denne artikel vil jeg tale om Jenkins Git-integration og dens fordele. Tipene, vi skal dække, er som følger:

Så lad os begynde med vores første emne.





Hvad er Git - Hvorfor Git Kom til eksistens?

Vi ved alle ”Nødvendigheden er moderen til alle opfindelser”. Tilsvarende opstod Git for at opfylde visse fornødenheder, som udviklerne stod over for før Git. Så lad os tage et skridt tilbage for at lære alt om versionskontrolsystemer (VCS) og hvordan Git blev til.

Versionskontrol er styring af ændringer i dokumenter, computerprogrammer, store websteder og anden indsamling af information.



Der er to typer VCS:

  • Centraliseret versionskontrolsystem (CVCS)

  • Distribueret versionskontrolsystem (DVCS)



Centraliseret VCS

Et centraliseret versionskontrolsystem (CVCS) bruger en central server til at gemme alle filer og muliggør teamsamarbejde. Det fungerer på et enkelt arkiv, som brugere kan få direkte adgang til en central server til.

Se diagrammet nedenfor for at få en bedre idé om CVCS:

Depotet i ovenstående diagram angiver en central server, der kan være lokal eller ekstern, som er direkte forbundet til hver af programmørens arbejdsstationer.

Hver programmør kan udtrække eller opdatering deres arbejdsstationer med de data, der findes i arkivet. De kan også foretage ændringer i dataene eller begå til arkivet. Hver operation udføres direkte på lageret.

Selvom det virker ret bekvemt at vedligeholde et enkelt arkiv, har det nogle store ulemper. Nogle af dem er:

  • Det er ikke lokalt tilgængeligt, hvilket betyder, at du altid skal have forbindelse til et netværk for at udføre nogen handling.

  • Da alt er centraliseret, vil den centrale server under alle omstændigheder blive styrtet eller ødelagt resultere i at miste hele projektets data.

Det er her Distribueret VCS løser problemet.

Distribueret VCS

Disse systemer er ikke nødvendigvis afhængige af en central server til at gemme alle versionerne af en projektfil.I Distribueret VCS har hver bidragsyder en lokal kopi eller 'klon' af hovedlageret. Her vedligeholder alle et eget lokalt lager, der indeholder alle de filer og metadata, der er til stede i hovedlageret.

Du vil forstå det bedre ved at henvise til diagrammet nedenfor:

Som du kan se i ovenstående diagram, vedligeholder hver programmør et lokalt lager alene, hvilket faktisk er kopien eller klonen af ​​det centrale lager på deres harddisk. De kan forpligte og opdatere deres lokale arkiv uden indblanding.

De kan opdatere deres lokale arkiver med nye data fra den centrale server ved en operation kaldet “ trække ”Og påvirker ændringer i hovedlageret ved en operation kaldet“ skubbe ”Fra deres lokale arkiv.

Lad os nu prøve at vide om definitionen af ​​Git.

  • Git er et distribueret versionskontrolværktøj, der understøtter distribuerede ikke-lineære arbejdsgange ved at levere datasikkerhed til udvikling af kvalitetssoftware. Værktøjer som Git muliggør kommunikation mellem udviklingen og driftsteamet.

  • Normalt har du et stort antal samarbejdspartnere, når du udvikler et stort projekt. Så det er meget vigtigt at have kommunikation mellem samarbejdspartnerne, mens du foretager ændringer i projektet.

  • Forpligt budskaber i Git spiller en meget vigtig rolle i kommunikationen mellem holdet. Bortset fra kommunikation er den vigtigste grund til at bruge Git, at du altid har en stabil version af koden med dig.

  • Derfor spiller Git en vigtig rolle for at lykkes hos DevOps.

Hvad er Jenkins?

Jenkins er et open source-automatiseringsværktøj skrevet i Java med plugins bygget til kontinuerlig integrationsformål. Jenkins bruges til at opbygge og teste dine softwareprojekter løbende, hvilket gør det lettere for udviklere at integrere ændringer i projektet og gør det lettere for brugerne at få en ny build. Det giver dig også mulighed for kontinuerligt at levere din software ved at integrere med et stort antal test- og implementeringsteknologier.

Med Jenkins kan organisationer fremskynde softwareudviklingsprocessen gennem automatisering. Jenkins integrerer udviklingslivscyklusprocesser af alle slags, herunder build, dokument, test, pakke, scene, implementering, statisk analyse og meget mere.

Jenkins opnår kontinuerlig integration ved hjælp af plugins. Plugins tillader integration af forskellige DevOps-faser. Hvis du vil integrere et bestemt værktøj, skal du installere plugins til det værktøj. For eksempel Git, Maven 2-projekt, Amazon EC2, HTML-udgiver osv.

Fordele ved Jenkins inkluderer:

  • Det er et open source-værktøj med stor samfundsstøtte.

  • For let at installere.

  • Det har mere end 1000 plugins for at lette dit arbejde. Hvis der ikke findes et plugin, kan du kode det og dele det med samfundet.

  • Det er gratis.

  • Den er bygget med Java og er derfor bærbar til alle de større platforme.

Du ved nu, hvordan Jenkins overvinder de traditionelle SDLC-mangler. Tabellen nedenfor viser sammenligningen mellem 'Før og efter Jenkins'.

Før JenkinsEfter Jenkins
Hele kildekoden blev bygget og derefter testet. At finde og rette fejl i tilfælde af build- og testfejl var vanskeligt og tidskrævende, hvilket igen bremser softwareleveringsprocessen.Hver forpligtelse, der foretages i kildekoden, bygges og testes. Så i stedet for at kontrollere hele kildekoden behøver udviklere kun at fokusere på en bestemt forpligtelse. Dette fører til hyppige nye softwareudgivelser.
Udviklere skal vente på testresultaterUdviklere kender testresultatet af hver forpligtelse, der foretages i kildekoden på farten.
Hele processen er manuelDu behøver kunbegå ændringer i kildekoden, og Jenkins automatiserer resten af ​​processen for dig.

Hvorfor bruges Jenkins og Git sammen?

Som diskuteret tidligere, er en kildekontrolchef. Det er her, du opbevarer din kildekode til sporing af alle de kodeændringer, der sker over tid og til at basere versionerne, når de er klar til frigivelse.

Jenkins derimod er en kontinuerlig integrationsløsning. Det er udtænkt til at automatisere de fleste af de opgaver, som en udvikler skal udføre, mens de udvikler en ny applikation (kodekvalitetskontrol, bygning, arkivering af byggegenstande, integrationstest, implementering i forskellige miljøer osv.) Uden en CI-løsning, en udvikler skal bruge meget tid på at udføre disse gentagne ikke-produktive opgaver.

Fordele:

  • Git og Jenkins er begge meget magtfulde, men med stor magt kommer stort ansvar. Det er ret almindeligt at retfærdiggøre en unødvendig mængde komplikation i en build-pipeline simpelthen fordi du kan.
  • Mens Jenkins har mange pæne tricks på ærmet, er det let at udnytte funktionerne i Git, da det gør frigørelsesstyring og bug tracking betydeligt lettere over tid.
  • Vi kan gøre dette ved at være forsigtige med de versioner af kode, vi bygger, og tagge dem korrekt. Dette holder frigivelsesrelaterede oplysninger tæt på koden , i modsætning til at stole på Jenkins-bygningsnumre eller andre monikere.
  • Beskyttelse af Git-grene reducerer risikoen for menneskelige fejl og automatisering af så mange opgaver som muligt reducerer, hvor ofte vi skal plage (eller vente på) disse mennesker.

Eksempel:

Lad os tage eksemplet med en ny funktion i en webapplikation. En udvikler identificeres og tildeles opgaven, han tager den eksisterende kodebase fra kildekontrollen - sig, Git, foretager sine ændringer, udfører enhedstest, sikrer kodekvalitet manuelt og kontrollerer den nye kode tilbage i Git.

Derefter skal han bygge koden, implementere den i integrationsinstans, køre integrationstest, og når ændringen synes tilfredsstillende, rejse en anmodning om produktionsinstallation. Nu, hvis vi kun havde en håndlangere til at tage os af denne test, bygning, kvalitetskontrol og implementeringssektioner, kunne den dårlige udvikler have fokuseret bedre på de ting, han er rigtig god til - implementering og forbedring af funktionens logik.

Denne håndlangere er Jenkins. Det fungerer som en orkestrator til at køre alle disse aktiviteter, når ændringen er kontrolleret i kildekontrol (Git) og giver således hurtig feedback til udvikleren, om de ændringer, han har foretaget, er gode nok til implementering af produktionen eller ej.Det er en ekstremt fleksibel open source og har masser af plugins, der kan gøre næsten alt, hvad du ønsker det.

Demo

Her vil vi se, hvordan man integrerer Git med Jenkins. Der er 5 trin, du skal følge:

1. Opret et prøveprogram:

Du kan oprette et hvilket som helst prøveprogram, som du vil have, som Java eller Python eller ethvert andet program. Her vil vi skrive en simpel Python-program der udskriver Hej, Verden!

2. Opret et Jenkins-job:

  • Her skal du først start Jenkins ved hjælp af kommandoprompten.

  • Til det skal du først navigere til Jenkins-placeringen på dit system og bruge kommandoen java -jar jenkins.war

  • Efter at have kørt denne kommando, skal du åbne webbrowseren og gå til Jenkins hjemmeside ved hjælp af linket lokal vært: 8080 . Dette er standardportnummeret.

  • Åbn Jenkins startside ved indtastning af brugernavn og adgangskode.

  • Klik på for at oprette et projekt Ny vare og indtast Projekt navn og vælg Freestyle-projekt . Klik på OK.

3. Føj dette program til Github:

  • Åbn git bash på dit system. Navigere til placeringen af ​​dit program. Initialiser et tomt lager ved hjælp af kommandoen git init .

  • Brug kommandoen git add. for at tilføje filen til mellemstationer fra arbejdsmappen.

  • Tilføj nu filen til det lokale lager ved hjælp af kommandoen git commit -m “demo.py-fil tilføjet” .

  • Nu skal du skubbe denne fil til det eksterne lager. For at gøre det skal du gå til din GitHub-konto og oprette et nyt offentligt arkiv. Kopier nu placeringen af ​​dette arkiv og gå til git bash terminal. Her skriver du kommandoen git remote tilføj oprindelse . Siden nu har du oprettet forbindelse til det eksterne lager, kan du nu skubbe din kode der ved hjælp af kommandoen git push -u oprindelsesmester. For at bekræfte dette skal du gå til GitHub-kontoen og opdatere siden. Du vil se filen tilføjet der.

4. Tilføj Git Plugin i Jenkins:

  • Gå til Jenkins hjemmeside Administrer Jenkins .

  • Klik derefter på Administrer plugins . Her tjek fik Git plugin i den installerede sektion. Hvis det ikke er tilgængeligt her, skal du søge efter det i det tilgængelige afsnit og downloade det.

    installer php 7 på windows

5. Konfigurer Jenkins-job til at udløse build:

  • Gå til projektet i Jenkins, som vi oprettede i trin 2. Her i afsnittet Kildekodestyring, vælg git og indtast linket til det offentlige lager, du oprettede i trin 3. Næste i Sektionen Byg udløsere , Klik på Afstemning SCM-mulighed . Her i delplanen skal du indtaste fem stjerner adskilt af mellemrum. Dette er intet andet end cron-syntaks for dit job. Dette betyder, at Jenkins vil kontrollere for ændringer i kildekoden hvert minut, og hvis der er nogen ændringer, vil det udløse Jenkins-bygningen.

  • Klik på ansøge og derefter videre Gemme . Klik derefter på dit projekts startside Byg nu . Dette kører projektet, og i konsoloutputtet kan du se dit programoutput status for dit Jenkins-job. Hvis alt er i orden, vises det som Succes .

Så dette gøres Jenkins Git Integration. Med dette er vi kommet til slutningen af ​​denne artikel om Jenkins Git Integration. Jeg håber, du har nydt denne artikel.

Nu hvor du har forstået hvad Jenkins Git Integration er, tjek dette af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edureka DevOps-certificeringskursus hjælper eleverne med at forstå, hvad der er DevOps og få ekspertise i forskellige DevOps-processer og -værktøjer såsom Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack og GIT til automatisering af flere trin i SDLC.

Har du et spørgsmål til os? Nævn det i kommentarfeltet, så vender vi tilbage til dig