Jenkins Integrace s GitHubem: Jak nainstalovat plugin Git?
โก Chytrรฉ shrnutรญ
Jenkins Integrace GitHubu propojuje automatizaฤnรญ server se zdrojovรฝm repozitรกลem, takลพe kaลพdรฝ commit lze automaticky vytvoลit a ovฤลit. Propojenรญ se dokonฤรญ instalacรญ pluginu Git, vytvoลenรญm รบlohy Freestyle, ovฤลenรญm pomocรญ tokenu a registracรญ webhooku.

Uลพ jsi se nauฤil/a, co Jenkins je a jak na to nainstalujte jej na Windows systรฉmZa pลedpokladu, ลพe jsou tyto zรกkladnรญ kroky dokonฤeny, nynรญ pลejdeme ke sprรกvฤ pluginลฏ.
Jenkins mรก vynikajรญcรญ podporu pluginลฏ. K dispozici je vรญce neลพ tisรญc pluginลฏ aplikacรญ tลetรญch stran. Chcete-li zkontrolovat, zda Jenkins podporuje aplikaci tลetรญ strany, kterou mรกte na mysli, vyhledejte adresรกล pluginลฏ na adrese https://plugins.jenkins.io/.
Instalace pluginลฏ v Jenkins
Jenkins dodรกvรก se s pomฤrnฤ zรกkladnรญm nastavenรญm, takลพe je nutnรฉ nainstalovat poลพadovanรฉ pluginy, abyste umoลพnili podporu pro kaลพdou aplikaci tลetรญch stran.
GitHub je webovรฉ รบloลพiลกtฤ kรณdu, kterรฉ hraje hlavnรญ roli v DevOps. Poskytuje spoleฤnou platformu pro vรญce vรฝvojรกลลฏ pracujรญcรญch na stejnรฉm kรณdu nebo projektu pro nahrรกvรกnรญ a naฤรญtรกnรญ aktualizovanรฉho kรณdu, ฤรญmลพ usnadลuje prลฏbฤลพnou integraci.
Jenkins Pลed naฤรญtรกnรญm kรณdu z repozitรกลe GitHub je nutnรฉ mรญt nainstalovanรฝ plugin Git. Nรกzvy tฤchto dvou pluginลฏ se ฤasto zamฤลujรญ, proto je tabulka nรญลพe oddฤluje:
| Zapojit | Co poskytuje | Poลพadovรกno pro tento nรกvod? |
|---|---|---|
| Plugin pro Git | Jedno Git moลพnost v ฤรกsti Zdroj Code Sprรกva, klonovรกnรญ repozitรกลลฏ a vรฝbฤr vฤtvรญ | Ano โ tohle je to podstatnรฉ |
| Plugin GitHubu | Ovlรกdรกnรญ webhooku, Spouลกtฤฤ hooku na GitHubu moลพnost a stav sestavenรญ hlรกลกenรฝ zpฤt do commitลฏ | Pouze pro automatickรฉ spouลกtฤnรญ |
Tyto pluginy nemusรญte instalovat, pokud jste jiลพ navrhovanรฉ pluginy pลijali bฤhem Jenkins nastavenรญ instalace, protoลพe plugin Git je souฤรกstรญ tรฉto sady. Pokud ne, zde je nรกvod, jak je nainstalovat a stรกhnout kรณd z repozitรกลe GitHub.
Jak nainstalovat plugin Git Jenkins
Nรกsleduje podrobnรฝ postup, jak nainstalovat plugin Git. Jenkins:
Krok 1: Otevลete ลรญdicรญ panel.
Kliknฤte na ลรญdit Jenkins tlaฤรญtko na vaลกem Jenkins pลรญstrojovรก deska:
Krok 2: Najdฤte moลพnost pluginลฏ.
Kliknฤte na pluginyAktuรกlnรญ Jenkins vydรกnรญ, tento zรกznam je oznaฤen jednoduลกe pluginystarลกรญ verze oznaฤenรฉ stejnou obrazovkou Spravovat pluginy.
Krok 3: Na strรกnce Pluginy otevลete Dostupnรฉ pluginy zรกloลพka a potรฉ:
- Vybrat Git plugin
- kliknฤte Instalovat bez restartuStaลพenรญ pluginu trvรก nฤkolik okamลพikลฏ v zรกvislosti na vaลกem internetovรฉm pลipojenรญ a nainstaluje se automaticky.
- Mรญsto toho si mลฏลพete vybrat Stรกhnout nynรญ a nainstalovat po restartu, v takovรฉm pลรญpadฤ se plugin pouลพije, kdyลพ Jenkins dalลกรญ starty.
- Pokud je plugin jiลพ nainstalovรกn, zobrazรญ se na Instalovanรฝ zรกloลพka a nenรญ nabรญzena ลพรกdnรก aktualizace.
Krok 4: Jakmile jsou pluginy nainstalovรกny, pลejdฤte na ลรญdit Jenkins > Pluginy > NainstalovanรฉVaลกe novรฉ pluginy jsou uvedeny mezi ostatnรญmi.
S nainstalovanรฝm pluginem, Jenkins nynรญ lze nasmฤrovat na skuteฤnรฝ repozitรกล.
Jak se integrovat Jenkins S GitHubem
Nynรญ si projdeme proces integrace Jenkins a GitHub na Windows Systรฉm:
Krok 1) Vytvoลte novou pracovnรญ pozici v Jenkins. Otevลi Jenkins palubnรญ deska na vaลกem Jenkins URL, Napลรญklad http://localhost:8080/, a klepnฤte na tlaฤรญtko Novรฝ pลedmฤt:
Krok 2) Zadejte nรกzev poloลพky, vyberte typ รบlohy a kliknฤte na OK. Jako pลรญklad vytvoลรญme projekt Freestyle.
Krok 3) Jakmile kliknete OK, strรกnka pลesmฤruje na formulรกล pro konfiguraci projektu. Zde zadejte informace o projektu:
Krok 4) Uvidรญte a Git moลพnost pod Zdroj Code management pokud byl nainstalovรกn plugin Git Jenkins:
Poznรกmka: V pลรญpadฤ, ลพe Git moลพnost se nezobrazuje, znovu nainstalujte plugin, restartujte Jenkinsa znovu se pลihlaste do ลรญdicรญho panelu. Git Moลพnost se pak zobrazรญ, jak je znรกzornฤno vรฝลกe.
Krok 5) Vstupte do Git repozitรกลe URL stรกhnout kรณd z GitHubu.
Krok 6) Pลi prvnรญm vstupu do repozitรกลe se mลฏลพe zobrazit chybovรก zprรกva. URL, Napลรญklad:
K tomu dochรกzรญ, kdyลพ na poฤรญtaฤi, na kterรฉm bฤลพรญ, nenรญ nainstalovรกn Git. Jenkins. Jenkins Neobsahuje vlastnรญ binรกrnรญ soubor Git; plugin volรก spustitelnรฝ soubor Git na hostiteli. Chcete-li Git nainstalovat lokรกlnฤ, pลejdฤte na https://git-scm.com/downloads.
Stรกhnฤte si vhodnรฝ instalaฤnรญ program Gitu pro vรกลก Operasystรฉm โ v tomto pลรญpadฤ Windows โ a nainstalujte jej na spuลกtฤnรฝ poฤรญtaฤ JenkinsDokonฤete instalaci podle pokynลฏ na obrazovce.
Krok 7) Jenkins Po instalaci Gitu na poฤรญtaฤi mลฏลพete spustit repozitรกลe Git. Instalaci potvrฤte otevลenรญm pลรญkazovรฉho ลรกdku, typ gita stisknฤte klรกvesu Enter. Zobrazรญ se seznam moลพnostรญ Gitu:
:: 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
Tรญm se potvrdรญ, ลพe je Git nainstalovรกn ve vaลกem systรฉmu.
Poznรกmka: Pokud je Git jiลพ nainstalovรกn, pลidejte git.exe cesta pod ลรญdit Jenkins > Nรกstroje (oznaฤenรฉ Globรกlnรญ konfigurace nรกstroje u starลกรญch vydรกnรญ).
Krok 8) Se vลกรญm na svรฉm mรญstฤ pลidejte Git URL do Jenkins znovu. Nezobrazรญ se ลพรกdnรก chybovรก zprรกva, coลพ potvrzuje Jenkins Integrace s Gitem:
Git je nynรญ ve vaลกem systรฉmu sprรกvnฤ nakonfigurovรกn. Veลejnรฝ repozitรกล se v tomto okamลพiku naklonuje, ale soukromรฝ stรกle potลebuje pลihlaลกovacรญ รบdaje, coลพ je dalลกรญ krok.
Jak se autentizovat Jenkins S osobnรญm pลรญstupovรฝm tokenem GitHubu
GitHub pลestal v srpnu 2021 pลijรญmat hesla k รบฤtลฏm pro operace s Gitem. Zadรกnรญ uลพivatelskรฉho jmรฉna a hesla v Jenkins proto selลพe u jakรฉhokoli soukromรฉho repozitรกลe s chybou ovฤลovรกnรญ, a to i v pลรญpadฤ, ลพe se na web GitHub pลihlaลกujรญ stejnรฉ pลihlaลกovacรญ รบdaje. Heslo nahrazuje osobnรญ pลรญstupovรฝ token a Jenkins uklรกdรก jej do vlastnรญho รบloลพiลกtฤ pลihlaลกovacรญch รบdajลฏ, nikoli do konfigurace รบlohy.
Nejprve si vytvoลte token na GitHubu:
- V GitHubu otevลete Nastavenรญ > Nastavenรญ pro vรฝvojรกลe > Osobnรญ pลรญstupovรฉ tokeny.
- Vyberte si jemnozrnnรฝ token, kde je to moลพnรฉ, protoลพe mลฏลพe bรฝt omezen na jeden repozitรกล nebo klasickรฝ token, pokud ho vaลกe organizace stรกle potลebuje.
- Udฤlte pลรญstup pro ฤtenรญ obsahu repozitรกลe. Pลidejte status commitu s pลรญstupem pro zรกpis pouze tehdy, kdyลพ chcete. Jenkins hlรกsit vรฝsledky sestavenรญ zpฤt do commitลฏ.
- Nastavte datum platnosti a okamลพitฤ zkopรญrujte token โ GitHub ho zobrazรญ pลesnฤ jednou.
Pak zaregistrujte token uvnitล Jenkins:
- Pลejรญt ลรญdit Jenkins > Pลihlaลกovacรญ รบdaje > Systรฉm > Globรกlnรญ pลihlaลกovacรญ รบdaje a klepnฤte na tlaฤรญtko Pลidat pลihlaลกovacรญ รบdaje.
- vybrat Uลพivatelskรฉ jmรฉno s heslem jako druh. Zadejte svรฉ uลพivatelskรฉ jmรฉno na GitHubu a vloลพte znรกmka do pole pro heslo.
- Uveฤte pro poloลพku jasnรฉ ID, napลรญklad
github-pattakลพe je rozpoznatelnรฝ na obrazovkรกch konfigurace รบlohy. - Nรกvrat do prรกce, otevลeno Zdroj Code Sprรกva > Gita vyberte novรฉ pลihlaลกovacรญ รบdaje z povฤลovacรญ listiny dropdown.
ฤervenรก chyba ovฤลenรญ v repozitรกลi URL zmizรญ jednou Jenkins lze ovฤลit. Je tลeba si zapamatovat dvฤ praktickรฉ poznรกmky. Zaprvรฉ, tokeny expirujรญ; รบloha, kterรก spolehlivฤ bฤลพela mฤsรญce a nรกhle selลพe pลi odevzdรกnรญ, je tรฉmฤล vลพdy expirovanรฝ token, nikoli poลกkozenรฝ repozitรกล. Zadruhรฉ, SSH klรญฤ je platnou alternativou โ pลidejte soukromรฝ klรญฤ jako Uลพivatelskรฉ jmรฉno SSH se soukromรฝm klรญฤem povฤลenรญ a pouลพitรญ git@github.com:owner/repo.git URL formulรกล mรญsto formulรกลe HTTPS.
Jak spustit Jenkins Automatickรฉ sestavenรญ pomocรญ webhooku na GitHubu
Vรฝลกe vytvoลenรก รบloha se stรกle musรญ spouลกtฤt ruฤnฤ, coลพ maลรญ รบฤel kontinuรกlnรญ integrace. Webhook tuto mezeru uzavรญrรก: GitHub odesรญlรก HTTP poลพadavek na Jenkins pลi kaลพdรฉm zatlaฤenรญ a Jenkins okamลพitฤ zahรกjรญ stavbu.
Jenkins Aby to fungovalo, musรญ bรฝt dostupnรฉ z GitHubu. Na notebooku s operaฤnรญm systรฉmem localhost:8080 nenรญ, takลพe buฤ hostitel Jenkins na veลejnosti URL nebo jej doฤasnฤ zpลรญstupnit tunelovacรญ sluลพbฤ bฤhem testovรกnรญ.
- Nainstalujte si plugin GitHub. Zpฤt na ลรญdit Jenkins > Pluginy > Dostupnรฉ pluginy a nainstalujte GitHubToto pลidรกvรก moลพnost spouลกtฤnรญ, kterou samotnรฝ plugin Git neposkytuje.
- Povolte spouลกtฤฤ v รบloze. Otevลete konfiguraci รบlohy a pลejdฤte na Sestavte spouลกtฤฤe, a zaลกkrtnฤte Spouลกtฤฤ hooku GitHubu pro dotazovรกnรญ GITScm.
- Pลidejte webhook do GitHubu. V repozitรกลi otevลete Nastavenรญ > Webhooky > Pลidat webhook.
- Nastavenรญ uลพiteฤnรฉho zatรญลพenรญ URL tvรฉmu Jenkins adresa nรกsledovanรก
/github-webhook/Koncovรฉ lomรญtko je dลฏleลพitรฉ. - Nastavenรญ typu obsahu na
application/jsonA zvolte Pouze udรกlost push. - Uloลพit a otestovat. GitHub odesรญlรก ping okamลพitฤ. Zelenรก fajfka pod Nedรกvnรฉ dodรกvky znamenรก Jenkins pลijal 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/
Odeลกlete commit pro potvrzenรญ uzavลenรญ smyฤky. รloha by se mฤla objevit ve frontฤ sestavenรญ bฤhem nฤkolika sekund bez nutnosti ruฤnรญho zรกsahu. Pokud se nic nestane, otevลete webhook na GitHubu a pลeฤtฤte si Nedรกvnรฉ dodรกvky kรณd odpovฤdi: kรณd 403 obvykle ukazuje na Jenkins nastavenรญ zabezpeฤenรญ blokujรญcรญ anonymnรญ pลรญstup ke koncovรฉmu bodu, zatรญmco ฤasovรฝ limit znamenรก, ลพe GitHub se nemลฏลพe dostat k Jenkins URL vลฏbec.
Jakmile se sestavenรญ spustรญ automaticky, zbรฝvajรญcรญm problรฉmem je obvykle hrstka opakujรญcรญch se chyb.
Spoleฤnรฝ Jenkins Chyby a opravy integrace GitHubu
Tรฉmฤล kaลพdรก neรบspฤลกnรก integrace spadรก do jednรฉ z nรญลพe uvedenรฝch kategoriรญ a kaลพdรก mรก zลetelnรฝ pลรญznak, kterรฝ pลรญmo ukazuje na pลรญฤinu.
- V sekci Zdroj nenรญ k dispozici moลพnost Git. Code ลรญzenรญ: Plugin Git nenรญ nainstalovรกn nebo nenรญ naฤten. Znovu jej nainstalujte z ลรญdit Jenkins > Pluginy, restartujte Jenkinsa znovu naฤtฤte strรกnku s konfiguracรญ รบlohy.
- โNepodaลilo se pลipojit k repozitรกลiโ na veลejnรฉm URL: Git chybรญ v Jenkins hostitel. Nainstalujte Git a potรฉ potvrฤte pomocรญ
git --versiona zaznamenejte cestu pod nรญ ลรญdit Jenkins > Nรกstroje. - Ovฤลenรญ selhalo na soukromรฉm repozitรกลi: Pouลพรญvรก se heslo k รบฤtu. Nahraฤte ho osobnรญm pลรญstupovรฝm tokenem, jak je popsรกno vรฝลกe, nebo pลepnฤte na klรญฤ SSH.
- Sestavenรญ se po odeslรกnรญ nikdy nezaฤne: buฤ Spouลกtฤฤ hooku na GitHubu zaลกkrtรกvacรญ polรญฤko nenรญ zaลกkrtnutรฉ nebo se GitHub nemลฏลพe dostat k Jenkins URLZkontrolujte protokol doruฤovรกnรญ webhookลฏ v nastavenรญ repozitรกลe.
- Je vytvoลena nesprรกvnรก vฤtev: ฮฟ Specifikรกtor vฤtve stรกle drลพรญ vรฝchozรญ nastavenรญ
*/masterzatรญmco repozitรกล pouลพรญvรกmainAktualizujte specifikรกtor tak, aby odpovรญdal. - Pokladna vฤera fungovala a dnes selhala: Platnost osobnรญho pลรญstupovรฉho tokenu vyprลกela. Vygenerujte nรกhradnรญ a aktualizujte uloลพenรฉ pลihlaลกovacรญ รบdaje.
Takรฉ zkontrolujte: Nejlepลกรญ Jenkins Alternativy (otevลenรฝ zdroj a placenรฉ) a CI/CD potrubรญ nรกvod, kterรฝ navazuje na zde navรกzanรฉ spojenรญ.















