Jenkins Integracija s GitHubom: Kako instalirati Git dodatak?

โšก Pametni saลพetak

Jenkins GitHub integracija povezuje automatizacijski posluลพitelj s izvornim repozitorijem tako da se svaki commit moลพe automatski izraditi i provjeriti. Instaliranje Git dodatka, stvaranje Freestyle posla, autentifikacija tokenom i registracija webhooka dovrลกavaju vezu.

  • ๐Ÿ”Œ Plugin Foundation: Jenkins dolazi s minimalnim skupom znaฤajki, tako da podrลกka treฤ‡ih strana dolazi putem dodataka instaliranih iz Upravljanja Jenkins Stranica s dodacima.
  • ๐ŸŒฟ Git vs. GitHub dodatak: Git dodatak pruลพa izvorni kod Code Opcija upravljanja koja klonira repozitorij; GitHub dodatak dodaje rukovanje webhookovima i izvjeลกtavanje o statusu commita.
  • ๐Ÿ’ป Potreban lokalni Git: Jenkins delegira kloniranje na Git izvrลกnu datoteku na hostu, tako da nedostajuฤ‡a lokalna instalacija stvara repozitorij URL greลกka u validaciji.
  • ๐Ÿ”‘ Autentifikacija tokena: GitHub je prestao prihvaฤ‡ati lozinke raฤuna za Gitove operacije u kolovozu 2021., pa privatni repozitoriji zahtijevaju osobni pristupni token ili SSH kljuฤ.
  • ๐Ÿช Automatsko okidanje: Webhook repozitorija koji pokazuje na Jenkins Krajnja toฤka github-webhook pokreฤ‡e izgradnju pri svakom puลกtanju umjesto ruฤnog pokretanja.
  • ๐Ÿงพ Provjera: Pokretanjem naredbe git โ€“version potvrฤ‘uje se rjeลกavanje izvrลกne datoteke i Manage Jenkins Alati biljeลพe svoj put.
  • ๐Ÿ› ๏ธ Oporavak od kvara: Nedostaje izvor Code Opcije upravljanja, odbijeni vjerodajnice i tihi webhookovi uzrokuju veฤ‡inu neuspjeha integracije.

Jenkins GitHub integracija

Veฤ‡ si nauฤio/la ลกto Jenkins je i kako instalirajte ga na Windows sistemPod pretpostavkom da su ti osnovni koraci dovrลกeni, sada ฤ‡emo prijeฤ‡i na upravljanje dodacima.

Jenkins ima izvrsnu podrลกku za dodatke. Dostupno je preko tisuฤ‡u dodataka za aplikacije treฤ‡ih strana. Da biste provjerili je li Jenkins podrลพava aplikaciju treฤ‡e strane koju imate na umu, pretraลพite direktorij dodataka na https://plugins.jenkins.io/.

Jenkins GitHub integracija

Instalacija dodataka u Jenkins

Jenkins dolazi s priliฤno osnovnim postavkama, tako da morate instalirati potrebne dodatke kako biste omoguฤ‡ili podrลกku za svaku aplikaciju treฤ‡e strane.

GitHub je web-bazirani repozitorij koda koji igra glavnu ulogu u DevOpsu. Pruลพa zajedniฤku platformu za viลกe programera koji rade na istom kodu ili projektu za prijenos i dohvaฤ‡anje aลพuriranog koda, ฤime se olakลกava kontinuirana integracija.

Jenkins Potrebno je instalirati Git dodatak prije nego ลกto moลพe preuzeti kod iz GitHub repozitorija. Nazivi dva dodatka se ฤesto brkaju, pa ih tablica u nastavku razdvaja:

Plugin ล to pruลพa Obavezno za ovaj vodiฤ?
Git dodatak The iฤ‡i opcija pod Izvor Code Upravljanje, kloniranje repozitorija i odabir grana Da - ovo je bitno
Dodatak za GitHub Rukovanje webhookom, Okidaฤ hook-a na GitHubu opcija i status izgradnje koji se izvjeลกtava natrag u commite Samo za automatsko okidanje

Ne morate instalirati ove dodatke ako ste veฤ‡ prihvatili predloลพene dodatke tijekom Jenkins postavljanje instalacije, buduฤ‡i da je Git dodatak dio tog seta. Ako nije, evo kako ih instalirati i izvuฤ‡i kod iz GitHub repozitorija.

Kako instalirati Git dodatak u Jenkins

Slijedi korak-po-korak postupak instalacije Git dodatka u Jenkins:

Korak 1: Otvorite svoju nadzornu ploฤu.
Kliknite na upravljati Jenkins gumb na vaลกem Jenkins nadzorna ploฤa:

Instalirajte Git dodatak u Jenkins

Korak 2: Pronaฤ‘ite opciju dodataka.
Kliknite na DodaciTrenutno Jenkins izdanja ovaj unos je oznaฤen jednostavno Dodacistarija izdanja oznaฤena istim zaslonom Upravljanje dodacima.

Instalirajte Git dodatak u Jenkins

Korak 3: Na stranici Dodaci otvorite Dostupni dodaci kartica, a zatim:

  1. Odaberite iฤ‡i ukljuฤiti
  2. Kliknite Instalirajte bez ponovnog pokretanjaPreuzimanje dodatka traje nekoliko trenutaka, ovisno o vaลกoj internetskoj vezi, i instalira se automatski.
  3. Umjesto toga moลพete odabrati Preuzmite sada i instalirajte nakon ponovnog pokretanja, u kojem sluฤaju se dodatak primjenjuje kada Jenkins sljedeฤ‡i poฤinje.
  4. Ako je dodatak veฤ‡ prisutan, pojavljuje se na Instalirani kartica i ne nudi se aลพuriranje.

Instalirajte Git dodatak u Jenkins

Korak 4: Nakon ลกto su dodaci instalirani, idite na upravljati Jenkins > Dodaci > InstaliranoVaลกi novi dodaci navedeni su meฤ‘u ostalima.

Instalirajte Git dodatak u Jenkins

S instaliranim dodatkom, Jenkins sada se moลพe usmjeriti na stvarno spremiลกte.

Kako se integrirati Jenkins S GitHubom

Sada ฤ‡emo proฤ‡i kroz proces integracije Jenkins i GitHub na Windows Sustav:

Korak 1) Stvori novi posao u Jenkins, Otvori Jenkins nadzorna ploฤa na vaลกem Jenkins URL, Na primjer http://localhost:8080/, i kliknite Nova stavka:

Integrirati Jenkins S GitHubom

Korak 2) Unesite naziv stavke, odaberite vrstu posla i kliknite OK. Napravit ฤ‡emo Freestyle projekt kao primjer.

Integrirati Jenkins S GitHubom

Korak 3) Nakon ลกto kliknete OK, stranica preusmjerava na obrazac za konfiguraciju projekta. Ovdje unesite podatke o projektu:

Integrirati Jenkins S GitHubom

Korak 4) Vidjet ฤ‡ete iฤ‡i opcija pod izvor Code Upravljanje ako je Git dodatak instaliran u Jenkins:

Integrirati Jenkins S GitHubom

Biljeลกka: Ako iฤ‡i opcija se ne pojavljuje, ponovno instalirajte dodatak, ponovno pokrenite Jenkinsi ponovno se prijavite na nadzornu ploฤu. iฤ‡i opcija ฤ‡e tada biti vidljiva kao ลกto je prikazano gore.

Korak 5) Uฤ‘ite u Git repozitorij URL za preuzimanje koda s GitHuba.

Integrirati Jenkins S GitHubom

Korak 6) Moลพda ฤ‡ete dobiti poruku o pogreลกci prilikom prvog ulaska u repozitorij URL, Na primjer:

Integrirati Jenkins S GitHubom

To se dogaฤ‘a kada Git nije instaliran na raฤunalu na kojem se izvrลกava Jenkins. Jenkins ne ukljuฤuje vlastitu Git binarnu datoteku; dodatak poziva Git izvrลกnu datoteku na hostu. Za lokalnu instalaciju Gita, idite na https://git-scm.com/downloads.

Integrirati Jenkins S GitHubom

Preuzmite odgovarajuฤ‡i Git instalacijski program za svoj Operating sustav - u ovom sluฤaju Windows โ€” i instalirajte ga na pokrenuti stroj JenkinsSlijedite upute na zaslonu kako biste dovrลกili instalaciju.

Integrirati Jenkins S GitHubom

Korak 7) Jenkins moลพe pokrenuti Git repozitorije nakon ลกto je Git instaliran na raฤunalu. Za potvrdu instalacije otvorite naredbeni redaktipa giti pritisnite Enter. Pojavit ฤ‡e se popis Gitovih opcija:

Integrirati Jenkins S GitHubom

:: 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

Ovo potvrฤ‘uje da je Git instaliran na vaลกem sustavu.

Biljeลกka: Ako je Git veฤ‡ instaliran, dodajte git.exe put ispod upravljati Jenkins > Alati (oznaฤen Globalna konfiguracija alata na starijim izdanjima).

Korak 8) Kada je sve na svom mjestu, dodajte Git URL u Jenkins ponovno. Ne pojavljuje se poruka o pogreลกci, ลกto potvrฤ‘uje Jenkins Integracija s Gitom:

Integrirati Jenkins S GitHubom

Git je sada ispravno konfiguriran na vaลกem sustavu. Javni repozitorij ฤ‡e se u ovom trenutku klonirati, ali privatni i dalje treba vjerodajnice, ลกto je sljedeฤ‡i korak.

Kako se autentificirati Jenkins S osobnim pristupnim tokenom za GitHub

GitHub je prestao prihvaฤ‡ati lozinke raฤuna za Gitove operacije u kolovozu 2021. Navoฤ‘enje korisniฤkog imena i lozinke u Jenkins stoga ne uspijeva protiv bilo kojeg privatnog repozitorija s greลกkom autentifikacije, ฤak i kada se isti vjerodajnici prijavljuju na GitHub web stranicu. Osobni token za pristup zamjenjuje lozinku i Jenkins pohranjuje ga u vlastito spremiลกte vjerodajnica, a ne u konfiguraciju posla.

Prvo kreirajte token u GitHubu:

  1. U GitHubu otvorite Postavke > Postavke za razvojne programere > Osobni tokeni za pristup.
  2. Odaberite sitnozrnast token gdje je to moguฤ‡e, jer se moลพe ograniฤiti na jedno spremiลกte ili klasik token ako vaลกa organizacija joลก uvijek zahtijeva jedan.
  3. Omoguฤ‡ite pristup za ฤitanje sadrลพaja repozitorija. Dodajte status potvrde s pristupom za pisanje samo kada ลพelite. Jenkins za prijavu rezultata izgradnje natrag na commitove.
  4. Postavite datum isteka i odmah kopirajte token โ€” GitHub ga prikazuje toฤno jednom.

Zatim registrirajte token unutra Jenkins:

  1. Idi na upravljati Jenkins > Vjerodajnice > Sustav > Globalne vjerodajnice i kliknite Dodaj vjerodajnice.
  2. odabrati Korisniฤko ime s lozinkom kao vrstu. Unesite svoje korisniฤko ime za GitHub i zalijepite znak u polje za lozinku.
  3. Dajte unosu jasan ID kao ลกto je github-pat tako da je prepoznatljiv na ekranima za konfiguraciju posla.
  4. Povratak na posao, otvoreno izvor Code Upravljanje > Giti odaberite novu vjerodajnicu iz akreditiv padajuฤ‡eg.

Crvena greลกka validacije ispod repozitorija URL nestaje jednom Jenkins moลพe autentificirati. Vrijedi zapamtiti dvije praktiฤne napomene. Prvo, tokeni istjeฤu; posao koji je pouzdano radio mjesecima i iznenada ne uspije prilikom odjave gotovo je uvijek istekli token, a ne pokvareno spremiลกte. Drugo, SSH kljuฤ je valjana alternativa - dodajte privatni kljuฤ kao SSH korisniฤko ime s privatnim kljuฤem vjerodajnicu i koristite git@github.com:owner/repo.git URL obrazac umjesto HTTPS obrasca.

Kako pokrenuti Jenkins Automatski se gradi pomoฤ‡u GitHub webhooka

Gore kreirani posao i dalje se mora ruฤno pokrenuti, ลกto poniลกtava svrhu kontinuirane integracije. Webhook zatvara tu prazninu: GitHub ลกalje HTTP zahtjev na Jenkins pri svakom guranju i Jenkins odmah zapoฤinje s gradnjom.

Jenkins mora biti dostupno s GitHuba da bi ovo funkcioniralo. Na prijenosnom raฤunalu s localhost:8080 nije, pa bilo koji domaฤ‡in Jenkins na javnom URL ili ga privremeno izloลพiti putem usluge tuneliranja tijekom testiranja.

  1. Instalirajte dodatak za GitHub. Vrati se na upravljati Jenkins > Dodaci > Dostupni dodaci i instalirajte GitHubOvo dodaje opciju okidaฤa koju sam Git dodatak ne pruลพa.
  2. Omoguฤ‡ite okidaฤ na zadatku. Otvorite konfiguraciju posla, pomaknite se do Okidaฤi za izgradnjui oznaฤite GitHub hook okidaฤ za GITScm anketiranje.
  3. Dodajte webhook u GitHub. U repozitoriju, otvorite Postavke > Webhookovi > Dodaj webhook.
  4. Postavite korisni teret URL na vaลกe Jenkins adresa nakon koje slijedi /github-webhook/Zavrลกna kosa crta je vaลพna.
  5. Postavite vrstu sadrลพaja do application/json I odaberite Samo dogaฤ‘aj push-a.
  6. Spremi i testiraj. GitHub ลกalje ping odmah. Zelena kvaฤica ispod Nedavne isporuke sredstva Jenkins prihvatio to.
# 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/

Potvrdite da je petlja zatvorena pritiskom na commit. Posao bi se trebao pojaviti u redu ฤekanja za izradu u roku od nekoliko sekundi bez ikakve ruฤne radnje. Ako se niลกta ne dogodi, otvorite webhook u GitHubu i proฤitajte Nedavne isporuke kod odgovora: 403 obiฤno pokazuje na Jenkins sigurnosne postavke blokiraju anonimni pristup krajnjoj toฤki, dok vremensko ograniฤenje znaฤi da GitHub ne moลพe dosegnuti Jenkins URL uopฤ‡e.

Nakon ลกto se izgradnje pokrenu automatski, preostali problem obiฤno je nekoliko ponavljajuฤ‡ih pogreลกaka.

Zajedniฤki Jenkins Greลกke i ispravci integracije GitHuba

Gotovo svaka neuspjeลกna integracija spada u jednu od dolje navedenih kategorija, a svaka ima zaseban simptom koji izravno ukazuje na uzrok.

  • Nema opcije Git pod Izvorni kod Code Upravljanje: Git dodatak nije instaliran ili nije uฤitan. Ponovno ga instalirajte iz upravljati Jenkins > Dodaci, ponovno pokrenite Jenkinsi ponovno uฤitajte stranicu za konfiguraciju posla.
  • โ€žNije uspjelo povezivanje s repozitorijemโ€œ na javnoj URL: Git nedostaje iz Jenkins host. Instalirajte Git, a zatim potvrdite s git --version i zabiljeลพite put ispod upravljati Jenkins > Alati.
  • Autentifikacija nije uspjela na privatnom repozitoriju: Koristi se lozinka raฤuna. Zamijenite je osobnim pristupnim tokenom kao ลกto je gore opisano ili prebacite na SSH kljuฤ.
  • Izgradnja nikad ne poฤinje nakon guranja: ili Okidaฤ hook-a na GitHubu potvrdni okvir nije oznaฤen ili GitHub ne moลพe doฤ‡i do Jenkins URLProvjerite zapisnik isporuke webhooka u postavkama repozitorija.
  • Izgraฤ‘ena je pogreลกna grana: o Specifikacija grane joลก uvijek drลพi zadanu vrijednost */master dok repozitorij koristi mainAลพurirajte specifikator da se podudara.
  • Naplata je juฤer radila, a danas ne uspijeva: Osobni pristupni token je dosegao datum isteka. Generirajte zamjenski i aลพurirajte pohranjene vjerodajnice.

Takoฤ‘er provjerite: Najbolje Jenkins Alternative (otvoreni kod i plaฤ‡eno) i CI/CD cjevovod vodiฤ, koji se nadovezuje na ovdje uspostavljenu vezu.

Pitanja i odgovori

Da. Git dodatak klonira s bilo kojeg Git hosta, tako da je izvorni kod Code Koraci upravljanja su identiฤni. Razlikuje se samo konfiguracija webhooka i namjenski GitLab ili Bitbucket Dodaci pruลพaju okidaฤe specifiฤne za hosta i izvjeลกtavanje o statusu.

Za sve osim demonstracije, da. Jenkinsdatoteka pohranjuje cjevovod definicija u samom repozitoriju, tako da se koraci izgradnje verzioniraju i pregledavaju zajedno s kodom, umjesto da se nalaze samo u Jenkins UI.

AI Asistenti saลพimaju neuspjeลกne zapisnike izgradnje, predlaลพu vjerojatno problematiฤnu commit izvedbu i izraฤ‘uju nacrte koraka cjevovoda iz strukture repozitorija. RevPregledajte svaki prijedlog prije nego ลกto ga primijenite, posebno sve ลกto se tiฤe vjerodajnica.

Ne. Umjetna inteligencija ubrzava dijagnostiku i izradu konfiguracija, ali orkestracija, rasporeฤ‘ivanje i revizijski trag i dalje zahtijevaju posluลพitelj za izradu. Tretirajte umjetnu inteligenciju kao pomoฤ‡nika u slojevima povrh Jenkins, a ne zamjena za to.

Da. Anketa SCM-a pod Build Triggers provjerava repozitorij prema rasporedu koristeฤ‡i cron sintaksu. Radi iza vatrozida, ali troลกi zahtjeve i odgaฤ‘a izgradnju, stoga je bolje koristiti webhookove kad god je to potrebno. Jenkins je dostiลพan.

Saลพmite ovu objavu uz: