Jenkins GitHub-integraatio: Kuinka asentaa Git-laajennus?

⚡ Älykäs yhteenveto

Jenkins GitHub-integraatio yhdistää automaatiopalvelimen lähdekoodirepositorioon, jotta jokainen commit voidaan rakentaa ja varmentaa automaattisesti. Yhteyden muodostamiseksi tarvitaan Git-laajennuksen asentaminen, Freestyle-työn luominen, todentaminen tokenilla ja webhookin rekisteröinti.

  • 🔌 Kytkeä Foundation: Jenkins toimitetaan minimaalisella ominaisuusvalikoimalla, joten kolmannen osapuolen tuki tulee Hallinta-kohdasta asennettujen laajennusten kautta Jenkins Liitännäiset-sivu.
  • 🌿 Git vs. GitHub -laajennus: Git-lisäosa tarjoaa lähdekoodin Code Hallintavaihtoehto, joka kloonaa repositorion; GitHub-laajennus lisää webhookin käsittelyn ja commit-tilan raportoinnin.
  • 💻 Paikallinen Git vaaditaan: Jenkins delegoi kloonauksen Git-suoritettavalle tiedostolle isännässä, joten puuttuva paikallinen asennus luo repositorion URL validointivirhe.
  • 🔑 Tunnuksen todennus: GitHub lopetti tilien salasanojen hyväksymisen Git-toiminnoissa elokuussa 2021, joten yksityiset tietovarastot vaativat henkilökohtaisen käyttöoikeustunnuksen tai SSH-avaimen.
  • 🪝 Automaattinen laukaisu: Arkiston webhook, joka osoittaa kohteeseen Jenkins github-webhook-päätepiste aloittaa koonnin jokaisella push-kerralla manuaalisen suorituksen sijaan.
  • 🧾 Todentaminen: git –version-komennon suorittaminen varmistaa, että suoritettava tiedosto on ratkaistu, ja Hallitse Jenkins Työkalut tallentaa polunsa.
  • 🛠️ Vian korjaaminen: Puuttuva lähde Code Hallinta-asetukset, hylätyt tunnistetiedot ja hiljaiset webhookit aiheuttavat useimmat integraatio-onnettomuudet.

Jenkins GitHub-integraatio

Olet jo oppinut, mitä Jenkins on ja miten asenna se a Windows järjestelmäOlettaen, että nämä perusvaiheet on suoritettu, siirrymme nyt laajennusten hallintaan.

Jenkins on erinomainen tuki lisäosille. Saatavilla on yli tuhat kolmannen osapuolen sovelluslisäosaa. Tarkistaaksesi, onko Jenkins tukeeko suunnittelemaasi kolmannen osapuolen sovellusta, etsi laajennushakemistosta osoitteesta https://plugins.jenkins.io/.

Jenkins GitHub-integraatio

Pluginien asennus Jenkins

Jenkins mukana tulee melko yksinkertainen asennus, joten sinun on asennettava tarvittavat laajennukset, jotta tuki kullekin kolmannen osapuolen sovellukselle on mahdollista.

GitHub on verkkopohjainen koodivarasto, jolla on tärkeä rooli DevOpsissa. Se tarjoaa yhteisen alustan useille saman koodin tai projektin parissa työskenteleville kehittäjille päivitetyn koodin lataamiseen ja hakemiseen, mikä helpottaa jatkuvaa integraatiota.

Jenkins vaatii Git-lisäosan asennettuna ennen kuin se voi vetää koodia GitHub-arkistosta. Nämä kaksi lisäosan nimeä sekoitetaan usein, joten alla oleva taulukko erottaa ne toisistaan:

Kytkeä Mitä se tarjoaa Vaaditaanko tätä läpikäyntiä varten?
Git-laajennus mennä vaihtoehto kohdassa Lähde Code Hallinta, arkiston kloonaus ja haaran valinta Kyllä – tämä on olennaisin
GitHub-laajennus Webhookin käsittely GitHub-koukkuliipaisin vaihtoehto, ja koontitila raportoidaan commiteille Vain automaattiseen laukaisun

Sinun ei tarvitse asentaa näitä lisäosia, jos olet jo hyväksynyt ehdotetut lisäosat asennuksen aikana. Jenkins asennusasetukset, koska Git-lisäosa on osa tätä sarjaa. Jos ei, tässä on ohjeet niiden asentamiseen ja koodin vetämiseen GitHub-arkistosta.

Git-laajennuksen asentaminen Jenkins

Seuraavassa on vaiheittainen prosessi Git-laajennuksen asentamiseksi Jenkins:

Vaihe 1: Avaa kojelautasi.
Klikkaa hoitaa Jenkins -painiketta Jenkins kojelauta:

Asenna Git-laajennus Jenkins

Vaihe 2: Etsi laajennukset-vaihtoehto.
Valitse pluginsNykyisellä Jenkins julkaisut tämä merkintä on merkitty yksinkertaisesti plugins; vanhemmat julkaisut, joissa on sama näyttö Hallinnoi lisäosia.

Asenna Git-laajennus Jenkins

Vaihe 3: Avaa Liitännäiset-sivulla Saatavilla olevat laajennukset välilehti ja sitten:

  1. Valitse mennä kytkeä
  2. Napauta Asenna ilman uudelleenkäynnistystäLaajennuksen lataaminen kestää muutaman hetken internet-yhteydestäsi riippuen, ja se asennetaan automaattisesti.
  3. Voit sen sijaan valita Lataa nyt ja asenna uudelleenkäynnistyksen jälkeen, jolloin laajennusta käytetään, kun Jenkins seuraava alkaa.
  4. Jos laajennus on jo asennettu, se näkyy Asennettu välilehti eikä päivitystä tarjota.

Asenna Git-laajennus Jenkins

Vaihe 4: Kun laajennukset on asennettu, siirry osoitteeseen hoitaa Jenkins > Lisäosat > AsennettuUudet laajennuksesi on lueteltu muiden joukossa.

Asenna Git-laajennus Jenkins

Kun laajennus on paikallaan, Jenkins voidaan nyt osoittaa varsinaiseen arkistoon.

Kuinka integroida Jenkins GitHubin avulla

Käymme nyt läpi integrointiprosessin Jenkins ja GitHubissa Windows järjestelmä:

Vaihe 1) Luo uusi työpaikka Jenkins. Avaa Jenkins kojelautaan Jenkins URL, esimerkiksi http://localhost:8080/, ja napsauta Uusi kohde:

yhdistää Jenkins GitHubin avulla

Vaihe 2) Kirjoita kohteen nimi, valitse työtyyppi ja napsauta OK. Luomme esimerkiksi Freestyle-projektin.

yhdistää Jenkins GitHubin avulla

Vaihe 3) Kun napsautat OK, sivu ohjaa projektin määrityslomakkeelle. Syötä projektin tiedot tähän:

yhdistää Jenkins GitHubin avulla

Vaihe 4) Näet a mennä vaihtoehto kohdassa Lähde Code videonhallinta jos Git-lisäosa on asennettu Jenkins:

yhdistää Jenkins GitHubin avulla

Huomautus: Jos mennä vaihtoehto ei tule näkyviin, asenna laajennus uudelleen ja käynnistä tietokone uudelleen. Jenkinsja kirjaudu uudelleen kojelautaan. mennä vaihtoehto on sitten näkyvissä, kuten yllä on esitetty.

Vaihe 5) Siirry Git-arkistoon URL vetääksesi koodin GitHubista.

yhdistää Jenkins GitHubin avulla

Vaihe 6) Saatat saada virheilmoituksen, kun avaat arkiston ensimmäisen kerran URL. Esimerkiksi:

yhdistää Jenkins GitHubin avulla

Tämä tapahtuu, kun Git ei ole asennettuna käynnissä olevalle koneelle. Jenkins. Jenkins ei niputa omaa Git-binääritiedostoaan; plugin kutsuu Git-suoritustiedostoa isännässä. Asentaaksesi Gitin paikallisesti, siirry osoitteeseen https://git-scm.com/downloads.

yhdistää Jenkins GitHubin avulla

Lataa sopiva Git-asennusohjelma laitteellesi Operating System – tässä tapauksessa Windows — ja asenna se käynnissä olevalle koneelle Jenkins. Suorita asennus loppuun noudattamalla näytön ohjeita.

yhdistää Jenkins GitHubin avulla

Vaihe 7) Jenkins voi suorittaa Git-arkistoja, kun Git on asennettu koneelle. Vahvista asennus avaamalla komentoriville, tyyppi gitja paina Enter-näppäintä. Git-asetusten luettelo tulee näkyviin:

yhdistää Jenkins GitHubin avulla

:: 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ä vahvistaa, että Git on asennettu järjestelmääsi.

Huomautus: Jos Git on jo asennettu, lisää se git.exe polku alla hoitaa Jenkins > Työkalut (merkitty Globaali työkalukonfiguraatio vanhemmissa julkaisuissa).

Vaihe 8) Kun kaikki on paikoillaan, lisää Git URL tulee Jenkins uudelleen. Virheilmoitusta ei tule näkyviin, mikä vahvistaa, että Jenkins Git-integraatio:

yhdistää Jenkins GitHubin avulla

Git on nyt määritetty oikein järjestelmässäsi. Julkinen repositorio kloonataan tässä vaiheessa, mutta yksityinen repositorio tarvitsee silti tunnistetiedot, mikä on seuraava vaihe.

Todentaminen Jenkins GitHub Personal Access Tokenilla

GitHub lopetti tilien salasanojen hyväksymisen Git-toiminnoissa elokuussa 2021. Käyttäjätunnuksen ja salasanan antaminen Jenkins epäonnistuu siksi kaikissa yksityisissä tietovarastoissa, joissa on todennusvirhe, vaikka samoilla tunnistetiedoilla kirjauduttaisiin GitHub-verkkosivustolle. Henkilökohtainen käyttöoikeustunnus korvaa salasanan, ja Jenkins tallentaa sen omaan tunnistetietosäilöönsä työkokoonpanon sijaan.

Luo ensin token GitHubissa:

  1. Avaa GitHubissa Asetukset > Kehittäjäasetukset > Henkilökohtaiset käyttöoikeustunnukset.
  2. Valitse hienorakeinen token mahdollisuuksien mukaan, koska se voidaan rajata yhteen tietovarastoon tai klassinen token, jos organisaatiosi sitä edelleen tarvitsee.
  3. Myönnä lukuoikeudet arkiston sisältöön. Lisää commit-tilan kirjoitusoikeudet vain halutessasi. Jenkins raportoida koontitulokset takaisin commit-tiedostoihin.
  4. Aseta voimassaolopäivämäärä ja kopioi token heti — GitHub näyttää sen tasan kerran.

Rekisteröi sitten sisällä oleva tunnus Jenkins:

  1. Mene hoitaa Jenkins > Tunnistetiedot > Järjestelmä > Yleiset tunnistetiedot ja valitse Lisää tunnistetiedot.
  2. valita Käyttäjätunnus ja salasana tyyppisenä. Syötä GitHub-käyttäjänimesi ja liitä symbolinen salasanakenttään.
  3. Anna merkinnälle selkeä tunniste, kuten github-pat joten se on tunnistettavissa työkonfiguraationäytöissä.
  4. Paluu työhön, avoin Lähde Code Hallinta > Gitja valitse uusi tunnistetieto valikosta Valtakirja pudotusvalikosta.

Punainen validointivirhe arkiston alla URL katoaa kerran Jenkins voi todentaa. Kaksi käytännön vinkkiä on syytä muistaa. Ensinnäkin, tokenit vanhenevat; työ, joka on toiminut luotettavasti kuukausia ja yhtäkkiä epäonnistuu uloskirjauksessa, on lähes aina vanhentunut token eikä rikkinäinen repositorio. Toiseksi SSH-avain on pätevä vaihtoehto – lisää yksityinen avain SSH-käyttäjätunnus ja yksityinen avain valtakirjaa ja käytä git@github.com:owner/repo.git URL lomakkeen HTTPS-lomakkeen sijaan.

Kuinka laukaista Jenkins Kääntää automaattisesti GitHub Webhookin avulla

Yllä luotu työ on edelleen käynnistettävä käsin, mikä tekee jatkuvan integraation tarkoituksen tyhjäksi. Webhook täyttää tämän aukon: GitHub lähettää HTTP-pyynnön palvelimelle Jenkins jokaisella painalluksella ja Jenkins aloittaa rakentamisen välittömästi.

Jenkins täytyy olla tavoitettavissa GitHubista, jotta tämä toimisi. Kannettavalla tietokoneella, jossa on localhost:8080 se ei ole, joten kumpikaan isäntä Jenkins julkisella paikalla URL tai altistaa sen tilapäisesti tunnelointipalvelun kautta testauksen aikana.

  1. Asenna GitHub-laajennus. Takaisin hoitaa Jenkins > Lisäosat > Saatavilla olevat lisäosat ja asenna GitHubTämä lisää liipaisutoiminnon, jota pelkkä Git-lisäosa ei tarjoa.
  2. Ota liipaisin käyttöön työssä. Avaa työkonfiguraatio, vieritä kohtaan Rakenna laukaisimiaja rasti GitHub-koukkukäynnistin GITScm-kyselyä varten.
  3. Lisää webhook GitHubiin. Avaa arkistossa Asetukset > Webhookit > Lisää webhook.
  4. Aseta hyötykuorma URL oman Jenkins osoite, jota seuraa /github-webhook/Loppuviivalla on merkitystä.
  5. Aseta sisällön tyyppi että application/json Ja valitse Vain push-tapahtuma.
  6. Tallenna ja testaa. GitHub lähettää ping välittömästi. Vihreä rasti alla Viimeaikaiset toimitukset välineet Jenkins hyväksyi sen.
# 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/

Lähetä commit varmistaaksesi, että silmukka on suljettu. Työn pitäisi ilmestyä rakennusjonoon muutamassa sekunnissa ilman manuaalisia toimia. Jos mitään ei tapahdu, avaa webhook GitHubissa ja lue Viimeaikaiset toimitukset vastauskoodi: 403 viittaa yleensä Jenkins suojausasetukset estävät anonyymin pääsyn päätepisteeseen, kun taas aikakatkaisu tarkoittaa, että GitHub ei voi tavoittaa Jenkins URL ollenkaan.

Kun rakenteet käynnistyvät automaattisesti, jäljelle jäävä kitka on yleensä kourallinen toistuvia virheitä.

Yhteinen Jenkins GitHub-integraatiovirheet ja korjaukset

Lähes jokainen epäonnistunut integraatio kuuluu johonkin alla olevista luokista, ja jokaisella on selkeä oire, joka viittaa suoraan syyhyn.

  • Ei Git-vaihtoehtoa Lähdekoodissa Code Management: Git-lisäosaa ei ole asennettu tai ladattu. Asenna se uudelleen osoitteesta hoitaa Jenkins > Laajennukset, uudelleenkäynnistää Jenkinsja lataa työn määrityssivu uudelleen.
  • "Yhteyden muodostaminen arkistoon epäonnistui" julkisella sivustolla URL: Git puuttuu joukosta Jenkins isäntä. Asenna Git ja vahvista sitten git --version ja tallenna polku alla hoitaa Jenkins > Työkalut.
  • Todennus epäonnistui yksityisessä tietovarastossa: tilin salasanaa käytetään. Korvaa se henkilökohtaisella käyttöoikeustunnuksella yllä kuvatulla tavalla tai vaihda SSH-avaimeen.
  • Koontit eivät koskaan ala pushin jälkeen: joko GitHub-koukkuliipaisin valintaruutua ei ole valittu tai GitHub ei voi tavoittaa Jenkins URLTarkista webhook-toimitusloki arkiston asetuksista.
  • Väärä haara on rakennettu: Ishayoiden opettaman Haaran määrittäjä pitää edelleen oletusarvoa */master samalla kun arkisto käyttää mainPäivitä määrite vastaamaan.
  • Maksutapahtuma toimi eilen, tänään epäonnistuu: Henkilökohtaisen käyttöoikeustunnuksen voimassaoloaika on päättynyt. Luo korvaava tunniste ja päivitä tallennettu tunnistetieto.

Tarkista myös: Parhaat Jenkins Vaihtoehdot (avoin lähdekoodi ja maksulliset) ja CI/CD-putki läpikäynti, joka rakentuu tässä luodulle yhteydelle.

UKK

Kyllä. Git-lisäosa kloonataan mistä tahansa Git-isännästä, joten lähdekoodi Code Hallintavaiheet ovat identtiset. Vain webhook-kokoonpano eroaa, ja erillinen GitLab tai Bitbucket laajennukset tarjoavat isäntäkohtaisia ​​triggereitä ja tilaraportointia.

Kaikkeen muuhun kuin demonstraatioon, kyllä. Jenkinstiedosto tallentaa putki määritelmä itse arkistossa, joten rakennusvaiheet versioidaan ja tarkistetaan koodin rinnalla sen sijaan, että ne olisivat vain arkistossa Jenkins UI.

AI Assistentit tekevät yhteenvedon epäonnistuneiden koontilokien osalta, ehdottavat todennäköistä virheellistä commit-tehtävää ja luonnostelevat prosessin vaiheet repositoriorakenteesta. RevTarkista jokainen ehdotus ennen sen soveltamista, erityisesti kaikki pätevyyteen liittyvät asiat.

Ei. Tekoäly nopeuttaa diagnostiikkaa ja konfiguroinnin luomista, mutta orkestrointi, aikataulutus ja auditointiloki vaativat silti koontipalvelimen. Käsittele tekoälyä avustajana, joka on kerrostettu päällekkäin. Jenkins, ei sen korvike.

Kyllä. Kyselyn SCM kohdassa Build Triggers tarkistaa repositorion aikataulun mukaisesti käyttäen cron-syntaksia. Se toimii palomuurin takana, mutta tuhlaa pyyntöjä ja viivästyttää koonteja, joten käytä webhookkeja mieluummin aina kun Jenkins on tavoitettavissa.

Tiivistä tämä viesti seuraavasti: