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.

  • ๐Ÿ”Œ Zapojit Foundation: Jenkins dodรกvรก se s minimรกlnรญ sadou funkcรญ, takลพe podpora tล™etรญch stran je k dispozici prostล™ednictvรญm pluginลฏ instalovanรฝch ze Spravovat Jenkins Strรกnka s pluginy.
  • ๐ŸŒฟ Plugin Git vs. GitHub: Plugin Git poskytuje zdrojovรฝ kรณd Code Moลพnost sprรกvy, kterรก klonuje repozitรกล™; plugin GitHub pล™idรกvรก zpracovรกnรญ webhookลฏ a hlรกลกenรญ stavu commitu.
  • ๐Ÿ’ป Vyลพadovรกno lokรกlnรญ nastavenรญ Gitu: Jenkins deleguje klonovรกnรญ na spustitelnรฝ soubor Git na hostiteli, takลพe chybฤ›jรญcรญ lokรกlnรญ instalace vytvoล™รญ repozitรกล™ URL chyba validace.
  • ๐Ÿ”‘ Ovฤ›ล™ovรกnรญ tokenu: GitHub pล™estal v srpnu 2021 pล™ijรญmat hesla k รบฤtลฏm pro operace s Gitem, takลพe soukromรฉ repozitรกล™e vyลพadujรญ osobnรญ pล™รญstupovรฝ token nebo SSH klรญฤ.
  • ๐Ÿช Automatickรฉ spouลกtฤ›nรญ: Webhook repozitรกล™e ukazujรญcรญ na Jenkins Koncovรฝ bod github-webhook spouลกtรญ sestavenรญ pล™i kaลพdรฉm odeslรกnรญ namรญsto ruฤnรญho spuลกtฤ›nรญ.
  • ๐Ÿงพ Ovฤ›ล™ovรกnรญ: Spuลกtฤ›nรญ pล™รญkazu git โ€“version potvrdรญ, ลพe se spustitelnรฝ soubor vyล™eลกรญ, a pล™รญkaz Manage Jenkins Nรกstroje zaznamenรกvajรญ jeho cestu.
  • ๐Ÿ› ๏ธ Obnova po selhรกnรญ: Chybรญ zdroj Code Moลพnosti sprรกvy, odmรญtnutรฉ pล™ihlaลกovacรญ รบdaje a tichรฉ webovรฉ hooky zpลฏsobujรญ vฤ›tลกinu selhรกnรญ integrace.

Jenkins Integrace GitHub

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/.

Jenkins Integrace GitHub

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:

Nainstalujte si plugin Git Jenkins

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.

Nainstalujte si plugin Git Jenkins

Krok 3: Na strรกnce Pluginy otevล™ete Dostupnรฉ pluginy zรกloลพka a potรฉ:

  1. Vybrat Git plugin
  2. 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.
  3. 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.
  4. Pokud je plugin jiลพ nainstalovรกn, zobrazรญ se na Instalovanรฝ zรกloลพka a nenรญ nabรญzena ลพรกdnรก aktualizace.

Nainstalujte si plugin Git Jenkins

Krok 4: Jakmile jsou pluginy nainstalovรกny, pล™ejdฤ›te na ล˜รญdit Jenkins > Pluginy > NainstalovanรฉVaลกe novรฉ pluginy jsou uvedeny mezi ostatnรญmi.

Nainstalujte si plugin Git Jenkins

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:

Integrovat Jenkins S GitHubem

Krok 2) Zadejte nรกzev poloลพky, vyberte typ รบlohy a kliknฤ›te na OK. Jako pล™รญklad vytvoล™รญme projekt Freestyle.

Integrovat Jenkins S GitHubem

Krok 3) Jakmile kliknete OK, strรกnka pล™esmฤ›ruje na formulรกล™ pro konfiguraci projektu. Zde zadejte informace o projektu:

Integrovat Jenkins S GitHubem

Krok 4) Uvidรญte a Git moลพnost pod Zdroj Code management pokud byl nainstalovรกn plugin Git Jenkins:

Integrovat Jenkins S GitHubem

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.

Integrovat Jenkins S GitHubem

Krok 6) Pล™i prvnรญm vstupu do repozitรกล™e se mลฏลพe zobrazit chybovรก zprรกva. URL, Napล™รญklad:

Integrovat Jenkins S GitHubem

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.

Integrovat Jenkins S GitHubem

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.

Integrovat Jenkins S GitHubem

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:

Integrovat Jenkins S GitHubem

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

Integrovat Jenkins S GitHubem

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:

  1. V GitHubu otevล™ete Nastavenรญ > Nastavenรญ pro vรฝvojรกล™e > Osobnรญ pล™รญstupovรฉ tokeny.
  2. 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.
  3. 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ลฏ.
  4. Nastavte datum platnosti a okamลพitฤ› zkopรญrujte token โ€“ GitHub ho zobrazรญ pล™esnฤ› jednou.

Pak zaregistrujte token uvnitล™ Jenkins:

  1. 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.
  2. 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.
  3. Uveฤte pro poloลพku jasnรฉ ID, napล™รญklad github-pat takลพe je rozpoznatelnรฝ na obrazovkรกch konfigurace รบlohy.
  4. 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รญ.

  1. 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.
  2. 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.
  3. Pล™idejte webhook do GitHubu. V repozitรกล™i otevล™ete Nastavenรญ > Webhooky > Pล™idat webhook.
  4. Nastavenรญ uลพiteฤnรฉho zatรญลพenรญ URL tvรฉmu Jenkins adresa nรกsledovanรก /github-webhook/Koncovรฉ lomรญtko je dลฏleลพitรฉ.
  5. Nastavenรญ typu obsahu na application/json A zvolte Pouze udรกlost push.
  6. 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 --version a 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รญ */master zatรญ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รญ.

Nejฤastฤ›jลกรญ dotazy

Ano. Plugin Git se klonuje z libovolnรฉho hostitele Git, takลพe zdrojovรฝ kรณd Code Kroky sprรกvy jsou identickรฉ. Liลกรญ se pouze konfigurace webhooku a specializovanรฝ GitLab nebo Bitbucket Pluginy poskytujรญ spouลกtฤ›ฤe specifickรฉ pro hostitele a hlรกลกenรญ stavu.

Pro cokoli jinรฉho neลพ demonstraci ano. Jenkinssoubor uklรกdรก potrubรญ definice v samotnรฉm repozitรกล™i, takลพe kroky sestavenรญ jsou verzovรกny a kontrolovรกny spoleฤnฤ› s kรณdem, a neexistujรญ pouze v Jenkins UI.

AI Asistenti shrnujรญ protokoly neรบspฤ›ลกnรฝch sestavenรญ, navrhujรญ pravdฤ›podobnรฝ problematickรฝ commit a na zรกkladฤ› struktury repozitรกล™e vytvรกล™ejรญ nรกvrhy krokลฏ procesu sestavenรญ. RevPล™ed pouลพitรญm si projdฤ›te kaลพdรฝ nรกvrh, zejmรฉna cokoli, co se tรฝkรก pล™ihlaลกovacรญch รบdajลฏ.

Ne. Umฤ›lรก inteligence urychluje diagnostiku a tvorbu konfiguracรญ, ale orchestrace, plรกnovรกnรญ a auditnรญ zรกznamy stรกle vyลพadujรญ server sestavenรญ. Povaลพujte umฤ›lou inteligenci za asistenta navrstvenรฉho na Jenkins, nikoli jeho nรกhrada.

Ano. Anketa SCM v ฤรกsti Build Triggers kontroluje repozitรกล™ podle plรกnu pomocรญ syntaxe cron. Funguje to za firewallem, ale plรฝtvรก poลพadavky a zpoลพฤuje sestavenรญ, proto vลพdy preferujte webhooky. Jenkins je dosaลพitelnรฝ.

Shrลˆte tento pล™รญspฤ›vek takto: