Jenkins GitHub-integration: Hvordan installerer man et Git-plugin?

⚡ Smart opsummering

Jenkins GitHub-integration forbinder en automatiseringsserver til et kildekode-arkiv, så hver commit kan bygges og verificeres automatisk. Installation af Git-plugin'et, oprettelse af et Freestyle-job, godkendelse med et token og registrering af en webhook fuldfører forbindelsen.

  • 🔌 Plugin Foundation: Jenkins leveres med et minimalt sæt funktioner, så tredjepartssupport kommer via plugins installeret fra Manage Jenkins Plugins-side.
  • 🌿 Git vs. GitHub-plugin: Git-pluginet leverer kildekoden Code Administrationsmulighed, der kloner et repository; GitHub-pluginet tilføjer webhook-håndtering og rapportering af commit-status.
  • 💻 Lokal Git påkrævet: Jenkins delegerer kloning til den eksekverbare Git-fil på værten, så en manglende lokal installation producerer repository'et URL valideringsfejl.
  • 🔑 Token-godkendelse: GitHub stoppede med at acceptere kontoadgangskoder til Git-operationer i august 2021, så private arkiver kræver en personlig adgangstoken eller en SSH-nøgle.
  • 🪝 Automatisk udløsning: En repository-webhook, der peger på Jenkins github-webhook-slutpunktet starter et build ved hvert push i stedet for en manuel kørsel.
  • 🧾 Verifikation: Kørsel af git –version bekræfter, at den eksekverbare fil er forløst, og Administrer Jenkins Værktøjer registrerer sin sti.
  • 🛠️ Genopretning af fejl: Manglende kilde Code Administrationsmuligheder, afviste legitimationsoplysninger og lydløse webhooks forårsager de fleste integrationsfejl.

Jenkins GitHub-integration

Du har allerede lært hvad Jenkins er og hvordan man installer det på en Windows systemetHvis disse grundlæggende trin er fuldført, går vi videre til plugin-administration.

Jenkins har fremragende plugin-understøttelse. Over tusind tredjepartsapplikationsplugins er tilgængelige. For at kontrollere om Jenkins understøtter den tredjepartsapplikation, du har i tankerne, skal du søge i plugins-mappen på https://plugins.jenkins.io/.

Jenkins GitHub-integration

Installation af plugins i Jenkins

Jenkins leveres med en forholdsvis grundlæggende opsætning, så du skal installere de nødvendige plugins for at aktivere understøttelse af hver tredjepartsapplikation.

GitHub er et webbaseret kodelager, der spiller en vigtig rolle i DevOps. Det giver en fælles platform for flere udviklere, der arbejder på den samme kode eller det samme projekt, til at uploade og hente opdateret kode og dermed fremme kontinuerlig integration.

Jenkins kræver, at Git-pluginnet er installeret, før det kan hente kode fra et GitHub-repository. De to plugin-navne forveksles ofte, så tabellen nedenfor adskiller dem:

Plugin Hvad det giver Kræves til denne gennemgang?
Git-plugin Git valgmulighed under Kilde Code Administration, kloning af arkiv og valg af gren Ja - dette er den vigtigste
GitHub-plugin Håndtering af webhooks GitHub hook-udløser mulighed, og buildstatus rapporteres tilbage til commits Kun til automatisk udløsning

Du behøver ikke at installere disse plugins, hvis du allerede har accepteret de foreslåede plugins under Jenkins installationsopsætning, da Git-plugin'et er en del af det sæt. Hvis ikke, kan du se her, hvordan du installerer dem og henter kode fra et GitHub-repository.

Sådan installeres Git-pluginet i Jenkins

Følgende er en trin-for-trin proces til installation af Git-plugin'et Jenkins:

Trin 1: Åbn dit dashboard.
Klik på Administrer Jenkins knappen på din Jenkins instrumentbræt:

Installer Git-pluginet Jenkins

Trin 2: Find plugin-muligheden.
Klik på plugins. På nuværende tidspunkt Jenkins udgivelser, som dette indlæg er mærket med blot pluginsældre udgivelser mærket med samme skærm Administrer plugins.

Installer Git-pluginet Jenkins

Trin 3: På siden Plugins skal du åbne Tilgængelige plugins fanen og derefter:

  1. Vælg Git plugin
  2. Klik Installer uden genstartPlugin'et tager et par øjeblikke at downloade, afhængigt af din internetforbindelse, og installeres automatisk.
  3. Du kan i stedet vælge Download nu og installer efter genstart, i hvilket tilfælde plugin'et anvendes, når Jenkins næste starter.
  4. Hvis plugin'et allerede er installeret, vises det på Installeret fanen, og der tilbydes ingen opdatering.

Installer Git-pluginet Jenkins

Trin 4: Når plugins er installeret, skal du gå til Administrer Jenkins > Plugins > InstalleretDine nye plugins er angivet blandt de andre.

Installer Git-pluginet Jenkins

Med plugin'et på plads, Jenkins kan nu peges på et faktisk arkiv.

Sådan integreres Jenkins Med GitHub

Vi vil nu gennemgå integrationsprocessen Jenkins og GitHub på en Windows system:

Trin 1) Opret et nyt job i Jenkins. Åbn Jenkins instrumentbrættet på dit Jenkins URL, For eksempel http://localhost:8080/, og klik Ny vare:

Integrere Jenkins Med GitHub

Trin 2) Indtast elementnavnet, vælg jobtypen, og klik på OK. Vi skal lave et Freestyle-projekt som eksempel.

Integrere Jenkins Med GitHub

Trin 3) Når du klikker på OK, siden omdirigerer til projektkonfigurationsformularen. Indtast projektoplysningerne her:

Integrere Jenkins Med GitHub

Trin 4) Du vil se en Git mulighed under Kilde Code Management hvis Git-plugin'et er blevet installeret i Jenkins:

Integrere Jenkins Med GitHub

Bemærk: Hvis Git Hvis valgmuligheden ikke vises, geninstaller plugin'et, genstart Jenkins, og log ind på dashboardet igen. Git Valgmuligheden vil derefter være synlig som vist ovenfor.

Trin 5) Gå ind i Git-arkivet URL at hente koden fra GitHub.

Integrere Jenkins Med GitHub

Trin 6) Du får muligvis en fejlmeddelelse første gang du åbner arkivet URL. For eksempel:

Integrere Jenkins Med GitHub

Dette sker, når Git ikke er installeret på den maskine, der kører. Jenkins. Jenkins bundter ikke sin egen Git-binære fil; plugin'et kalder den eksekverbare Git-fil på værten. For at installere Git lokalt, gå til https://git-scm.com/downloads.

Integrere Jenkins Med GitHub

Download det relevante Git-installationsprogram til din Operating System — i dette tilfælde Windows — og installer den på den kørende maskine JenkinsFølg instruktionerne på skærmen for at afslutte installationen.

Integrere Jenkins Med GitHub

Trin 7) Jenkins kan køre Git-arkiver, når Git er installeret på maskinen. For at bekræfte installationen skal du åbne en kommandopromptenSkriv git, og tryk på Enter. En liste over Git-indstillinger vises:

Integrere Jenkins Med GitHub

:: Confirm the Git executable resolves and report its version
git --version

:: Expected output
git version 2.51.0.windows.1

:: Show the full path Jenkins should record in Global Tool Configuration
where git

Dette bekræfter, at Git er installeret på dit system.

Bemærk: Hvis Git allerede er installeret, skal du tilføje git.exe sti under Administrer Jenkins > Værktøjer (mærket Global værktøjskonfiguration på ældre udgivelser).

Trin 8) Når alt er på plads, tilføj Git URL ind Jenkins igen. Der vises ingen fejlmeddelelse, hvilket bekræfter Jenkins Git-integration:

Integrere Jenkins Med GitHub

Git er nu korrekt konfigureret på dit system. Et offentligt repository vil klones på dette tidspunkt, men et privat repository kræver stadig legitimationsoplysninger, hvilket er det næste trin.

Sådan godkendes Jenkins Med et GitHub personligt adgangstoken

GitHub stoppede med at acceptere kontoadgangskoder til Git-operationer i august 2021. Angivelse af brugernavn og adgangskode i Jenkins fejler derfor mod ethvert privat arkiv med en godkendelsesfejl, selv når de samme legitimationsoplysninger logger ind på GitHub-webstedet. En personlig adgangstoken erstatter adgangskoden, og Jenkins gemmer den i sit eget legitimationsoplysningerlager i stedet for i jobkonfigurationen.

Opret først tokenet i GitHub:

  1. I GitHub, åbn Indstillinger > Udviklerindstillinger > Personlige adgangstokens.
  2. Vælg et finkornet token hvor det er muligt, fordi det kan begrænses til et enkelt arkiv eller et Classic token, hvis din organisation stadig har brug for en.
  3. Giv læseadgang til indholdet af arkivet. Tilføj kun skriveadgang til commit-status, når du ønsker det. Jenkins at rapportere byggeresultater tilbage til commits.
  4. Angiv en udløbsdato, og kopier tokenet med det samme – GitHub viser det præcis én gang.

Registrer derefter tokenen indeni Jenkins:

  1. Gå til Administrer Jenkins > Legitimationsoplysninger > System > Globale legitimationsoplysninger og klik Tilføj legitimationsoplysninger.
  2. Type Brugernavn med adgangskode som typen. Indtast dit GitHub-brugernavn, og indsæt token i adgangskodefeltet.
  3. Giv posten et tydeligt ID, f.eks. github-pat så det er genkendeligt på jobkonfigurationsskærme.
  4. Tilbage til jobbet, åben Kilde Code Administration > Git, og vælg den nye legitimationsoplysninger fra Legitimationsoplysninger dropdown.

Den røde valideringsfejl under arkivet URL forsvinder én gang Jenkins kan godkende. To praktiske bemærkninger er værd at huske. For det første udløber tokens; et job, der har kørt pålideligt i flere måneder og pludselig fejler ved udtjekning, er næsten altid et udløbet token snarere end et defekt arkiv. For det andet er en SSH-nøgle et gyldigt alternativ - tilføj den private nøgle som en SSH-brugernavn med privat nøgle legitimationsoplysninger og brug git@github.com:owner/repo.git URL formular i stedet for HTTPS-formularen.

Sådan udløses Jenkins Bygger automatisk med en GitHub Webhook

Det ovenfor oprettede job skal stadig startes manuelt, hvilket modvirker formålet med kontinuerlig integration. En webhook lukker dette hul: GitHub sender en HTTP-anmodning til Jenkins ved hvert skub, og Jenkins starter byggeriet med det samme.

Jenkins skal kunne nås fra GitHub for at dette kan virke. På en bærbar computer, der kører localhost:8080 det er det ikke, så enten vært Jenkins på en offentlighed URL eller midlertidigt eksponere den gennem en tunneleringstjeneste under testning.

  1. Installer GitHub-pluginnet. Vend tilbage til Administrer Jenkins > Plugins > Tilgængelige plugins og installer GitHubDette tilføjer trigger-muligheden, som Git-pluginet alene ikke tilbyder.
  2. Aktiver udløseren på jobbet. Åbn jobkonfigurationen, rul til Byg udløsere, og sæt kryds GitHub hook-trigger til GITScm-afstemning.
  3. Tilføj webhooken i GitHub. I arkivet skal du åbne Indstillinger > Webhooks > Tilføj webhook.
  4. Indstil nyttelasten URL til din Jenkins adresse efterfulgt af /github-webhook/Den efterfølgende skråstreg er vigtig.
  5. Angiv indholdstypen til application/json Og vælg Bare push-begivenheden.
  6. Gem og test. GitHub sender en ping straks. Et grønt flueben under Seneste leverancer midler Jenkins accepterede det.
# Payload URL format for the GitHub webhook
https://jenkins.example.com/github-webhook/

# Content type
application/json

# Verify from the Jenkins host that the endpoint answers
curl -I https://jenkins.example.com/github-webhook/

Tryk en commit for at bekræfte, at løkken er lukket. Jobbet burde vises i byggekøen inden for få sekunder uden manuel handling. Hvis der ikke sker noget, skal du åbne webhook'en i GitHub og læse Seneste leverancer svarkode: en 403 peger normalt på Jenkins sikkerhedsindstillinger, der blokerer anonym adgang til slutpunktet, mens en timeout betyder, at GitHub ikke kan nå Jenkins URL overhovedet.

Når builds udløses automatisk, er den resterende friktion normalt en håndfuld tilbagevendende fejl.

Fælles Jenkins GitHub-integrationsfejl og -rettelser

Næsten alle mislykkede integrationer falder ind under en af ​​nedenstående kategorier, og hver har et tydeligt symptom, der peger direkte på årsagen.

  • Ingen Git-mulighed under Kilde Code Ledelse: Git-plugin'et er ikke installeret eller ikke indlæst. Geninstaller det fra Administrer Jenkins > Plugins, genstart Jenkins, og genindlæs jobkonfigurationssiden.
  • "Kunne ikke oprette forbindelse til arkivet" på en offentlig URL: Git mangler fra Jenkins vært. Installer Git, og bekræft derefter med git --version og optag stien under Administrer Jenkins > Værktøjer.
  • Godkendelse mislykkedes på et privat arkiv: en kontoadgangskode bruges. Erstat den med en personlig adgangstoken som beskrevet ovenfor, eller skift til en SSH-nøgle.
  • Byggerier starter aldrig efter et push: enten den GitHub hook-udløser afkrydsningsfeltet er ikke markeret, eller GitHub kan ikke nå Jenkins URLTjek webhook-leveringsloggen i arkivindstillingerne.
  • Forkert gren er bygget: og Filialspecifikation har stadig standardværdien */master mens arkivet bruger mainOpdater specifikationen, så den matcher.
  • Betalingen virkede i går og fejler i dag: Den personlige adgangstoken er udløbet. Generer en erstatning, og opdater de gemte legitimationsoplysninger.

Kontroller også: Bedre Jenkins Alternativer (open source og betalt) og CI/CD pipeline gennemgang, som bygger videre på den forbindelse, der er etableret her.

Ofte Stillede Spørgsmål

Ja. Git-pluginet kloner fra enhver Git-vært, så kildekoden Code Administrationstrinnene er identiske. Kun webhook-konfigurationen er forskellig, og dedikeret GitLab eller Bitbucket Plugins leverer værtsspecifikke triggere og statusrapportering.

Til alt ud over en demonstration, ja. Jenkinsfilen gemmer pipeline definitionen i selve repository'et, så byggetrinene versioneres og gennemgås sammen med koden i stedet for kun at være i Jenkins UI.

AI Assistenter opsummerer mislykkede byggelogfiler, foreslår den sandsynligt problematiske commit og udarbejder pipeline-trin fra en repository-struktur. RevSe alle forslag, før du anvender dem, især alt, der vedrører legitimationsoplysninger.

Nej. AI accelererer diagnose og konfigurationsredigering, men orkestrering, planlægning og revisionsspor kræver stadig en build-server. Behandl AI som en assistent lagt oven på Jenkins, ikke en erstatning for den.

Ja. Afstemning SCM Under Byggeudløsere kontrolleres repositoriet efter en tidsplan ved hjælp af cron-syntaks. Det fungerer bag en firewall, men spilder anmodninger og forsinker builds, så foretrækker webhooks når som helst Jenkins er tilgængelig.

Opsummer dette indlæg med: