Jenkins GitHub integráció: Hogyan telepítsük a Git bővítményt?

⚡ Okos összefoglaló

Jenkins A GitHub integráció egy automatizálási szervert csatlakoztat egy forráskód-tárházhoz, így minden commit automatikusan felépíthető és ellenőrizhető. A Git bővítmény telepítése, egy Freestyle feladat létrehozása, tokennel történő hitelesítés és egy webhook regisztrálása teszi teljessé a kapcsolatot.

  • 🔌 Csatlakoztat Foundation: Jenkins minimális funkciókészlettel érkezik, így a harmadik féltől származó támogatás a Kezelésből telepített bővítményeken keresztül érkezik. Jenkins Bővítmények oldal.
  • 🌿 Git vs. GitHub bővítmény: A Git bővítmény biztosítja a forráskódot Code Felügyeleti lehetőség, amely klónoz egy adattárat; a GitHub bővítmény webhook-kezelést és commit állapotjelentést ad hozzá.
  • ???? Helyi Git szükséges: Jenkins a klónozást a gazdagépen található Git futtatható fájlra delegálja, így egy hiányzó helyi telepítés hozza létre a repositoryt URL érvényesítési hiba.
  • 🔑 Token hitelesítés: A GitHub 2021 augusztusában leállította a fiókjelszavak elfogadását a Git-műveletekhez, így a privát adattárak személyes hozzáférési tokent vagy SSH-kulcsot igényelnek.
  • 🪝 Automatikus kiváltás: Egy adattár webhookja, amely a következőre mutat: Jenkins A github-webhook endpoint minden push-kor elindít egy buildet manuális futtatás helyett.
  • 🧾 Ellenőrzés: A git –version parancs futtatása megerősíti a végrehajtható fájl feloldását, és a Manage parancsot. Jenkins Az Eszközök rögzíti az elérési útját.
  • 🇧🇷 Hiba utáni helyreállítás: Hiányzó forrás Code A legtöbb integrációs hibát a felügyeleti beállítások, az elutasított hitelesítő adatok és a csendes webhookok okozzák.

Jenkins GitHub integráció

Már megtanultad, hogy mit Jenkins van és hogyan kell telepítse egy Windows rendszerFeltételezve, hogy ezek az alapvető lépések megtörténtek, most a bővítmények kezelésével folytatjuk.

Jenkins kiemelkedő bővítmény-támogatással rendelkezik. Több mint ezer harmadik féltől származó alkalmazásbővítmény érhető el. Annak ellenőrzéséhez, hogy Jenkins támogatja a kiszemelt harmadik féltől származó alkalmazást, keresse meg a bővítmények könyvtárát a következő címen: https://plugins.jenkins.io/.

Jenkins GitHub integráció

Bővítmények telepítése Jenkins

Jenkins meglehetősen alapvető beállítással rendelkezik, ezért telepítenie kell a szükséges bővítményeket az egyes harmadik féltől származó alkalmazások támogatásának engedélyezéséhez.

A GitHub egy webalapú kódtár, amely fontos szerepet játszik a DevOpsban. Közös platformot biztosít több fejlesztő számára, akik ugyanazon a kódon vagy projekten dolgoznak, hogy feltöltsék és lekérjék a frissített kódot, ezáltal megkönnyítve a folyamatos integrációt.

Jenkins telepítenie kell a Git bővítményt, mielőtt kódot tudna lekérni egy GitHub repositoryból. A két bővítmény nevét gyakran összekeverik, ezért az alábbi táblázat különválasztja őket:

Csatlakoztat Mit nyújt Kötelező ehhez az útmutatóhoz?
Git bővítmény Az megy opció a Forrás alatt Code Kezelés, adattár klónozása és ágkiválasztás Igen – ez a lényeg
GitHub bővítmény Webhook kezelés, a GitHub hook trigger opció, és az építési állapot visszajelzésre kerül a commitoknak Csak automatikus kioldáshoz

Nem kell telepítened ezeket a bővítményeket, ha már elfogadtad a javasolt bővítményeket a folyamat során. Jenkins telepítési beállítások, mivel a Git bővítmény része ennek a készletnek. Ha nem, akkor itt találsz információkat arról, hogyan telepítheted őket és hogyan húzhatod ki a kódot egy GitHub-tárházból.

Hogyan telepítsük a Git bővítményt Jenkins

A következő lépésekben lépésről lépésre bemutatjuk, hogyan telepítheti a Git bővítményt: Jenkins:

Lépés 1: Nyissa meg az irányítópultot.
Kattints a kezel Jenkins gombot a Jenkins Irányítópult:

Git bővítmény telepítése Jenkins

Lépés 2: Keresd meg a bővítmények opciót.
Kattints a DugóJelenlegi Jenkins kiadások Ez a bejegyzés egyszerűen címkézett Dugó; régebbi kiadások ugyanazzal a képernyővel jelölve Beépülő modulok kezelése.

Git bővítmény telepítése Jenkins

Lépés 3: A Bővítmények oldalon nyissa meg a Elérhető bővítmények fülre, majd:

  1. Válassza ki a megy csatlakoztat
  2. Kattints Telepítés újraindítás nélkülA bővítmény letöltése az internetkapcsolattól függően néhány percet vesz igénybe, és automatikusan települ.
  3. Ehelyett választhatja Töltse le most, és telepítse újraindítás után, amely esetben a bővítmény akkor kerül alkalmazásra, amikor Jenkins következő kezdődik.
  4. Ha a bővítmény már telepítve van, akkor megjelenik a Telepített lap, és nem kínál fel frissítést.

Git bővítmény telepítése Jenkins

Lépés 4: Miután telepítetted a bővítményeket, menj ide: kezel Jenkins > Bővítmények > TelepítveAz új bővítményeid a többi között szerepelnek.

Git bővítmény telepítése Jenkins

A bővítmény behelyezésével Jenkins mostantól egy tényleges adattárra mutathat.

Hogyan lehet integrálni? Jenkins GitHubbal

Most pedig végigmegyünk az integráció folyamatán Jenkins és a GitHub egy Windows rendszer:

Step 1) Új munkakör létrehozása itt: Jenkins. Nyissa meg a Jenkins műszerfalon az Ön Jenkins URL, Például http://localhost:8080/, és kattintson a gombra Új jogcím:

Integrálja Jenkins GitHubbal

Step 2) Írja be az elem nevét, válassza ki a feladat típusát, majd kattintson a OK. Példaként létrehozunk egy Freestyle projektet.

Integrálja Jenkins GitHubbal

Step 3) Miután rákattintott OK, az oldal átirányít a projekt konfigurációs űrlapjára. Adja meg a projekt adatait itt:

Integrálja Jenkins GitHubbal

Step 4) Látni fogja a megy opció alatt Forrás Code Menedzsment ha a Git bővítmény telepítve van Jenkins:

Integrálja Jenkins GitHubbal

Jegyzet: Ha a megy nem jelenik meg a lehetőség, telepítse újra a bővítményt, indítsa újra a gépet Jenkins, és jelentkezzen be újra az irányítópultra. A megy A lehetőség ezután a fenti képen látható módon fog megjelenni.

Step 5) Lépjen be a Git repositoryba URL hogy kihúzd a kódot a GitHubból.

Integrálja Jenkins GitHubbal

Step 6) Előfordulhat, hogy hibaüzenetet kapsz, amikor először belépsz a tárházba URL. Például:

Integrálja Jenkins GitHubbal

Ez akkor történik, ha a Git nincs telepítve a futó gépre. Jenkins. Jenkins nem csomagolja be a saját Git bináris fájlját; a bővítmény meghívja a Git futtatható fájlját a gazdagépen. A Git helyi telepítéséhez látogasson el a következő oldalra: https://git-scm.com/downloads.

Integrálja Jenkins GitHubbal

Töltsd le a megfelelő Git telepítőt a gépedhez Operating rendszer – ebben az esetben Windows — és telepítse a futó gépre JenkinsA telepítés befejezéséhez kövesse a képernyőn megjelenő utasításokat.

Integrálja Jenkins GitHubbal

Step 7) Jenkins A Git telepítése után a gépre futtathatóak a Git-tárolók. A telepítés megerősítéséhez nyisson meg egy parancssorból, típus git, majd nyomja meg az Enter billentyűt. Megjelenik a Git-beállítások listája:

Integrálja Jenkins GitHubbal

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

Ez megerősíti, hogy a Git telepítve van a rendszereden.

Jegyzet: Ha a Git már telepítve van, add hozzá a git.exe ösvény alatt kezel Jenkins > Eszközök (címkézett Globális eszközkonfiguráció régebbi kiadásokon).

Step 8) Miután minden a helyén van, add hozzá a Git-et URL bele Jenkins újra. Nem jelenik meg hibaüzenet, ami megerősíti a Jenkins Git integráció:

Integrálja Jenkins GitHubbal

A Git most már megfelelően van konfigurálva a rendszereden. Egy nyilvános tároló klónozása ezen a ponton megtörténik, de egy privát tárolóhoz továbbra is szükség van hitelesítő adatokra, ami a következő lépés.

Hogyan hitelesítsünk Jenkins GitHub személyes hozzáférési tokennel

A GitHub 2021 augusztusában leállította a fiókjelszavak elfogadását a Git-műveletekhez. Felhasználónév és jelszó megadása a következőben: Jenkins ezért minden hitelesítési hibát tartalmazó privát adattárral szemben sikertelen, még akkor is, ha ugyanazokkal a hitelesítő adatokkal jelentkeznek be a GitHub webhelyre. Egy személyes hozzáférési token helyettesíti a jelszót, és Jenkins a saját hitelesítőadat-tárolójában tárolja, ahelyett, hogy a feladatkonfigurációban lenne.

Először hozd létre a tokent a GitHub-on:

  1. A GitHub-ban nyissa meg a Beállítások > Fejlesztői beállítások > Személyes hozzáférési tokenek.
  2. Válassz egy finomszemcsés token, ahol lehetséges, mivel hatóköre egyetlen adattárra korlátozható, vagy egy klasszikus tokent, ha a szervezetének továbbra is szüksége van rá.
  3. Olvasási hozzáférést biztosít a tárház tartalmához. Írási hozzáférést csak akkor adjon hozzá véglegesítési állapothoz, amikor szeretné. Jenkins a build eredmények commitként történő jelentésére.
  4. Állíts be egy lejárati dátumot, és másold le azonnal a tokent – ​​a GitHub pontosan egyszer jeleníti meg.

Ezután regisztrálja a tokent belül Jenkins:

  1. Tovább kezel Jenkins > Hitelesítő adatok > Rendszer > Globális hitelesítő adatok és kattintson Hitelesítő adatok hozzáadása.
  2. választ Felhasználónév jelszóval típusként. Írd be a GitHub felhasználóneved, és illeszd be a jelképes a jelszó mezőbe.
  3. Adjon a bejegyzésnek egyértelmű azonosítót, például github-pat így felismerhető a feladatkonfigurációs képernyőkön.
  4. Visszatérés a munkába, nyitva Forrás Code Kezelés > Git, és válassza ki az új hitelesítő adatot a Hitelesítő adatok ledob.

A piros érvényesítési hiba a tárház alatt URL eltűnik egyszer Jenkins hitelesíthető. Két gyakorlati megjegyzést érdemes megjegyezni. Először is, a tokenek lejárnak; egy olyan feladat, amely hónapokig megbízhatóan fut, és hirtelen meghiúsul a kijelentkezéskor, szinte mindig lejárt token, nem pedig hibás adattár. Másodszor, egy SSH-kulcs érvényes alternatíva – adja hozzá a privát kulcsot kulcsként SSH felhasználónév privát kulccsal hitelesítő adatot, és használja a git@github.com:owner/repo.git URL űrlapot a HTTPS űrlap helyett.

Hogyan indítsuk el Jenkins Automatikusan épít egy GitHub webhookkal

A fent létrehozott feladatot továbbra is kézzel kell elindítani, ami ellentétes a folyamatos integráció céljával. Egy webhook hidalja át ezt a hiányt: a GitHub HTTP kérést küld a következőnek: Jenkins minden nyomásnál, és Jenkins azonnal elkezdi az építést.

Jenkins elérhetőnek kell lennie a GitHubról ahhoz, hogy ez működjön. Egy laptopon, amelyen a következő fut: localhost:8080 nem az, tehát bármelyik gazdagép Jenkins nyilvánosság előtt URL vagy ideiglenesen alagútfúráson keresztül tegye ki a tesztelés során.

  1. Telepítsd a GitHub bővítményt. Vissza kezel Jenkins > Bővítmények > Elérhető bővítmények és telepítse GitHubEz hozzáadja azt az indítójel opciót, amelyet a Git bővítmény önmagában nem biztosít.
  2. Engedélyezze a triggert a feladaton. Nyissa meg a munkaköri konfigurációt, görgessen a következőhöz: Triggerek építése, és jelölje be GitHub hook trigger a GITScm lekérdezéshez.
  3. Adja hozzá a webhookot a GitHubban. A tárházban nyissa meg a Beállítások > Webhookok > Webhook hozzáadása.
  4. Állítsa be a hasznos terhet URL a Jenkins cím, majd /github-webhook/A záró perjel számít.
  5. Tartalomtípus beállítása nak nek application/json És válasszon Csak a push esemény.
  6. Mentés és tesztelés. A GitHub küld egy ping azonnal. Egy zöld pipa alatta Legutóbbi szállítások eszközök Jenkins elfogadta.
# 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/

Egy commit parancs beküldésével erősítse meg a ciklus lezárását. A feladatnak néhány másodpercen belül meg kell jelennie a build sorban, manuális beavatkozás nélkül. Ha semmi sem történik, nyissa meg a webhookot a GitHub-on, és olvassa el a következőt: Legutóbbi szállítások válaszkód: a 403-as kód általában erre mutat: Jenkins biztonsági beállítások blokkolják a névtelen hozzáférést a végponthoz, míg az időtúllépés azt jelenti, hogy a GitHub nem tudja elérni a Jenkins URL egyáltalán.

Miután az építmények automatikusan aktiválódnak, a fennmaradó súrlódás általában néhány ismétlődő hiba.

Közös Jenkins GitHub integrációs hibák és javítások

Szinte minden sikertelen integráció az alábbi kategóriák valamelyikébe tartozik, és mindegyiknek van egy különálló tünete, amely egyenesen az okra mutat.

  • Nincs Git opció a Forrás alatt Code Management: A Git bővítmény nincs telepítve vagy nincs betöltve. Telepítse újra innen: kezel Jenkins > Bővítmények, újrakezd Jenkins, és töltse be újra a feladatkonfigurációs oldalt.
  • „Nem sikerült csatlakozni a tárházhoz” egy nyilvános helyen URL: A Git hiányzik a Jenkins host. Telepítse a Git-et, majd erősítse meg a következővel: git --version és rögzítse az útvonalat alatta kezel Jenkins > Eszközök.
  • Hitelesítés sikertelen egy privát adattáron: Fiókjelszót használ. Cserélje le egy személyes hozzáférési tokenre a fent leírtak szerint, vagy váltson SSH-kulcsra.
  • Az építkezések soha nem indulnak el egy push után: vagy a GitHub hook trigger jelölőnégyzet nincs bejelölve, vagy a GitHub nem tudja elérni a Jenkins URLEllenőrizd a webhook kézbesítési naplóját a tárház beállításaiban.
  • Rossz ág épült fel: a Ágleíró még mindig az alapértelmezett értéket tartja */master miközben a tárház használja mainFrissítse a specifikátort, hogy megegyezzen.
  • A fizetés tegnap működött, ma meghiúsul: A személyes hozzáférési token lejárt. Generáljon egy csere tokent, és frissítse a tárolt hitelesítő adatokat.

Szintén ellenőrizze: Legjobb Jenkins Alternatívák (nyílt forráskódú és fizetős) és a CI/CD csővezeték végigjátszás, amely az itt létrehozott kapcsolatra épít.

GYIK

Igen. A Git bővítmény bármelyik Git hosztról klónozódik, így a forráskód Code A kezelési lépések azonosak. Csak a webhook konfigurációja különbözik, és dedikált GitLab vagy Bitbucket A bővítmények hoszt-specifikus triggereket és állapotjelentéseket biztosítanak.

Bármire, ami túlmutat a demonstráción, igen. Jenkinsfájl tárolja a csővezeték definíció magában a tárházban, így az építési lépések verziózva és ellenőrizve vannak a kóddal együtt, ahelyett, hogy csak a Jenkins UI.

AI Az asszisztensek összefoglalják a sikertelen build naplókat, javaslatot tesznek a valószínűsíthetően hibás commitra, és elkészítik a folyamat lépéseinek tervezetét egy adattár struktúrájából. RevMinden javaslatot tekintsen át, mielőtt alkalmazná, különösen a képesítéseket érintőeket.

Nem. A mesterséges intelligencia felgyorsítja a diagnosztikát és a konfigurációkészítést, de a vezényléshez, az ütemezéshez és az auditnaplóhoz továbbra is szükség van egy build szerverre. Tekintsük a mesterséges intelligenciát egy, a rendszerre rétegzett asszisztensként. Jenkins, nem pedig annak helyettesítője.

Igen. SCM szavazás A Build Triggerek alatt a cron szintaxis használatával ütemezetten ellenőrzi a repositoryt. Tűzfal mögött működik, de pazarolja a kéréseket és késlelteti az építést, ezért a webhookokat részesítsük előnyben, amikor csak szükséges. Jenkins elérhető.

Foglald össze ezt a bejegyzést a következőképpen: