Jenkins GitHub-Integration: Wie installiert man das Git-Plugin?

⚡ Intelligente Zusammenfassung

Jenkins Die GitHub-Integration verbindet einen Automatisierungsserver mit einem Quellcode-Repository, sodass jeder Commit automatisch erstellt und verifiziert werden kann. Die Verbindung wird durch die Installation des Git-Plugins, die Erstellung eines Freestyle-Jobs, die Authentifizierung mit einem Token und die Registrierung eines Webhooks hergestellt.

  • ???? Plugin Foundation: Jenkins Die Auslieferung erfolgt mit einem minimalen Funktionsumfang, daher erfolgt die Unterstützung von Drittanbietern über Plugins, die über die Verwaltung installiert werden. Jenkins Plugin-Seite.
  • 🌿 Git vs. GitHub-Plugin: Das Git-Plugin liefert den Quellcode. Code Eine Verwaltungsoption zum Klonen eines Repositorys; das GitHub-Plugin fügt Webhook-Verarbeitung und Commit-Statusberichte hinzu.
  • 💻 Lokales Git erforderlich: Jenkins delegiert das Klonen an die Git-Executable auf dem Host, sodass eine fehlende lokale Installation das Repository erzeugt. URL Validierungsfehler.
  • 🔑 Token-Authentifizierung: GitHub akzeptiert seit August 2021 keine Kontopasswörter mehr für Git-Operationen, daher benötigen private Repositories ein persönliches Zugriffstoken oder einen SSH-Schlüssel.
  • 🪝 Automatische Auslösung: Ein Repository-Webhook, der auf den Jenkins Der github-webhook-Endpunkt startet bei jedem Push einen Build anstelle eines manuellen Laufs.
  • 🧾 Überprüfung: Die Ausführung von `git --version` bestätigt, dass die ausführbare Datei aufgelöst wird, und verwaltet Jenkins Tools speichert seinen Pfad.
  • Fehlerbehebung: Fehlende Quelle Code Die meisten Integrationsfehler sind auf Managementoptionen, abgelehnte Anmeldeinformationen und stille Webhooks zurückzuführen.

Jenkins GitHub-Integration

Du hast bereits gelernt, was Jenkins ist und wie man installiere es auf a Windows fragstUnter der Annahme, dass diese grundlegenden Schritte abgeschlossen sind, werden wir uns nun der Plugin-Verwaltung zuwenden.

Jenkins bietet hervorragende Plugin-Unterstützung. Über tausend Plugins von Drittanbietern sind verfügbar. Um zu überprüfen, ob Jenkins Unterstützt die von Ihnen gewünschte Drittanbieteranwendung; suchen Sie im Plugin-Verzeichnis unter https://plugins.jenkins.io/.

Jenkins GitHub-Integration

Installation von Plugins in Jenkins

Jenkins Es verfügt über eine recht einfache Einrichtung, daher müssen Sie die erforderlichen Plugins installieren, um die Unterstützung für jede Drittanbieteranwendung zu aktivieren.

GitHub ist ein webbasiertes Code-Repository, das eine wichtige Rolle im DevOps-Bereich spielt. Es bietet eine gemeinsame Plattform für mehrere Entwickler, die am selben Code oder Projekt arbeiten, um aktualisierten Code hochzuladen und abzurufen und so die kontinuierliche Integration zu erleichtern.

Jenkins Bevor Code aus einem GitHub-Repository abgerufen werden kann, muss das Git-Plugin installiert sein. Die beiden Plugin-Namen werden oft verwechselt, daher werden sie in der folgenden Tabelle getrennt dargestellt:

Plugin Was es bietet Für diese Anleitung erforderlich?
Git-Plugin Das Git Option unter Quelle Code Verwaltung, Repository-Klonen und Branch-Auswahl Ja – das ist der entscheidende Punkt.
GitHub-Plugin Webhook-Verarbeitung, die GitHub-Hook-Trigger Option und der Build-Status werden an die Commits zurückgemeldet. Nur für automatische Auslösung

Sie müssen diese Plugins nicht installieren, wenn Sie die vorgeschlagenen Plugins bereits während der Jenkins Die Installationskonfiguration ist erforderlich, da das Git-Plugin Teil dieses Pakets ist. Falls nicht, finden Sie hier eine Anleitung zur Installation und zum Abrufen von Code aus einem GitHub-Repository.

Wie installiert man das Git-Plugin in Jenkins

Im Folgenden finden Sie eine schrittweise Anleitung zur Installation des Git-Plugins in Jenkins:

Schritt 1: Öffnen Sie Ihr Dashboard.
Klicken Sie auf Verwalten Jenkins Taste auf Ihrem Jenkins Instrumententafel:

Installieren Sie das Git-Plugin in Jenkins

Schritt 2: Suchen Sie die Option „Plugins“.
Klicken Sie auf PluginsAktuell Jenkins Veröffentlichungen. Dieser Eintrag ist einfach gekennzeichnet. Plugins; ältere Versionen mit demselben Bildschirm Plugins verwalten.

Installieren Sie das Git-Plugin in Jenkins

Schritt 3: Öffnen Sie auf der Seite „Plugins“ die Verfügbare Plugins Tabulator und dann:

  1. Wähle aus Git Plugin
  2. Klicken Sie auf Ohne Neustart installierenDas Herunterladen des Plugins dauert je nach Internetverbindung einige Augenblicke und erfolgt automatisch.
  3. Alternativ können Sie wählen Jetzt herunterladen und nach dem Neustart installierenIn diesem Fall wird das Plugin angewendet, wenn Jenkins Der nächste Startschuss fällt.
  4. Falls das Plugin bereits vorhanden ist, wird es auf der Seite angezeigt. Installierte Es wird kein Update angeboten.

Installieren Sie das Git-Plugin in Jenkins

Schritt 4: Sobald die Plugins installiert sind, gehen Sie zu Verwalten Jenkins > Plugins > InstalliertIhre neuen Plugins sind zusammen mit den anderen aufgelistet.

Installieren Sie das Git-Plugin in Jenkins

Nachdem das Plugin installiert wurde, Jenkins kann nun auf ein tatsächliches Repository verwiesen werden.

So integrieren Sie Jenkins Mit GitHub

Wir werden nun den Integrationsprozess Schritt für Schritt durchgehen. Jenkins und GitHub auf einem Windows System:

Schritt 1) Erstellen Sie einen neuen Job in Jenkins. Öffne das Jenkins Dashboard auf Ihrem Jenkins URLBeispielsweise http://localhost:8080/Und klicken Sie auf Neues Element:

Integrieren Jenkins Mit GitHub

Schritt 2) Geben Sie den Artikelnamen ein, wählen Sie den Auftragstyp aus und klicken Sie auf OK. Als Beispiel erstellen wir ein Freestyle-Projekt.

Integrieren Jenkins Mit GitHub

Schritt 3) Sobald Sie klicken OKDie Seite leitet zum Projektkonfigurationsformular weiter. Geben Sie hier die Projektinformationen ein:

Integrieren Jenkins Mit GitHub

Schritt 4) Sie werden eine sehen Git Option unter Quellcodeverwaltung wenn das Git-Plugin installiert wurde in Jenkins:

Integrieren Jenkins Mit GitHub

Hinweis: Besitzt das Git Die Option wird nicht angezeigt. Installieren Sie das Plugin neu und starten Sie den Computer neu. Jenkinsund melden Sie sich erneut im Dashboard an. Git Die Option wird dann wie oben dargestellt sichtbar sein.

Schritt 5) Öffnen Sie das Git-Repository. URL den Code von GitHub abrufen.

Integrieren Jenkins Mit GitHub

Schritt 6) Möglicherweise erhalten Sie beim ersten Zugriff auf das Repository eine Fehlermeldung. URL. Zum Beispiel:

Integrieren Jenkins Mit GitHub

Dies geschieht, wenn Git nicht auf dem Rechner installiert ist, auf dem das Programm läuft. Jenkins. Jenkins Das Plugin enthält keine eigene Git-Binärdatei; es ruft die Git-Executable auf dem Hostsystem auf. Um Git lokal zu installieren, gehen Sie zu https://git-scm.com/downloads.

Integrieren Jenkins Mit GitHub

Laden Sie den passenden Git-Installer für Ihre Betriebssystem — in diesem Fall Windows — und installieren Sie es auf dem laufenden Rechner. JenkinsFolgen Sie den Anweisungen auf dem Bildschirm, um die Installation abzuschließen.

Integrieren Jenkins Mit GitHub

Schritt 7) Jenkins Git-Repositories können ausgeführt werden, sobald Git auf dem Rechner installiert ist. Um die Installation zu überprüfen, öffnen Sie eine Eingabeaufforderung, Typ gitund drücken Sie die Eingabetaste. Eine Liste der Git-Optionen wird angezeigt:

Integrieren Jenkins Mit GitHub

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

Dies bestätigt, dass Git auf Ihrem System installiert ist.

Hinweis: Falls Git bereits installiert ist, fügen Sie Folgendes hinzu: git.exe Pfad unter Verwalten Jenkins > Werkzeuge (beschriftet) Globale Werkzeugkonfiguration (bei älteren Versionen).

Schritt 8) Wenn alles eingerichtet ist, fügen Sie Git hinzu. URL in Jenkins Erneut erscheint keine Fehlermeldung, was die Jenkins Git-Integration:

Integrieren Jenkins Mit GitHub

Git ist nun auf Ihrem System korrekt konfiguriert. Ein öffentliches Repository kann jetzt geklont werden, für ein privates Repository werden jedoch noch Zugangsdaten benötigt; dies ist der nächste Schritt.

So authentifizieren Sie sich Jenkins Mit einem persönlichen GitHub-Zugriffstoken

GitHub akzeptiert seit August 2021 keine Kontopasswörter mehr für Git-Operationen. Die Angabe eines Benutzernamens und Passworts in Jenkins Daher schlägt die Authentifizierung bei jedem privaten Repository fehl, selbst wenn dieselben Anmeldeinformationen auf der GitHub-Website funktionieren. Ein persönliches Zugriffstoken ersetzt das Passwort. Jenkins speichert es in einem eigenen Anmeldeinformationsspeicher anstatt in der Jobkonfiguration.

Erstellen Sie zuerst das Token in GitHub:

  1. In GitHub öffnen Einstellungen > Entwicklereinstellungen > Persönliche Zugriffstoken.
  2. Wähle ein feinkörnig Token, wo immer möglich, da es auf ein einzelnes Repository beschränkt werden kann, oder ein klassisch Token, falls Ihre Organisation noch einen benötigt.
  3. Gewähren Sie Lesezugriff auf den Repository-Inhalt. Fügen Sie Schreibzugriff auf den Commit-Status nur dann hinzu, wenn Sie dies wünschen. Jenkins Die Build-Ergebnisse werden in den Commits zurückgemeldet.
  4. Setzen Sie ein Ablaufdatum und kopieren Sie das Token sofort – GitHub zeigt es genau einmal an.

Registrieren Sie anschließend das Token im Inneren Jenkins:

  1. Zurück Nach Verwalten Jenkins Anmeldeinformationen > System > Globale Anmeldeinformationen und klicken auf Anmeldeinformationen hinzufügen.
  2. Auswählen Benutzername mit Passwort als Art. Geben Sie Ihren GitHub-Benutzernamen ein und fügen Sie den ein. Zeichen in das Passwortfeld.
  3. Geben Sie dem Eintrag eine eindeutige Kennung, wie zum Beispiel github-pat Es ist also in den Jobkonfigurationsbildschirmen erkennbar.
  4. Zurück zur Arbeit, öffnen Quelle Code Verwaltung > Gitund wählen Sie die neuen Anmeldeinformationen aus der Aus- und Fortbildungen Dropdown-Liste.

Der rote Validierungsfehler unter dem Repository URL verschwindet einmal Jenkins Die Authentifizierung ist möglich. Zwei wichtige Hinweise: Erstens, Tokens laufen ab. Ein Job, der monatelang zuverlässig lief und beim Auschecken plötzlich fehlschlägt, ist fast immer auf ein abgelaufenes Token und nicht auf ein defektes Repository zurückzuführen. Zweitens, ein SSH-Schlüssel ist eine gültige Alternative – fügen Sie den privaten Schlüssel als [fehlende Information] hinzu. SSH-Benutzername mit privatem Schlüssel Anmeldeinformationen und verwenden Sie die git@github.com:owner/repo.git URL Das Formular anstelle des HTTPS-Formulars.

So lösen Sie aus Jenkins Automatische Builds mit einem GitHub-Webhook

Der oben erstellte Job muss weiterhin manuell gestartet werden, was dem Zweck der kontinuierlichen Integration widerspricht. Ein Webhook schließt diese Lücke: GitHub sendet eine HTTP-Anfrage an Jenkins bei jedem Druckstoß, und Jenkins Der Build-Prozess startet sofort.

Jenkins Damit dies funktioniert, muss die Ressource von GitHub aus erreichbar sein. Auf einem Laptop mit folgendem Betriebssystem: localhost:8080 Nein, also entweder der Host Jenkins auf ein Publikum URL oder es während der Testphase vorübergehend über einen Tunneling-Dienst zugänglich machen.

  1. Installieren Sie das GitHub-Plugin. Zurück zur Seite Verwalten Jenkins > Plugins > Verfügbare Plugins und installieren GitHubDadurch wird die Trigger-Option hinzugefügt, die das Git-Plugin allein nicht bietet.
  2. Aktivieren Sie den Trigger für den Auftrag. Öffnen Sie die Jobkonfiguration und scrollen Sie zu Trigger erstellen, und ankreuzen GitHub-Hook-Trigger für GITScm-Polling.
  3. Füge den Webhook in GitHub hinzu. Im Repository öffnen Einstellungen > Webhooks > Webhook hinzufügen.
  4. Nutzlast festlegen URL auf Ihre Jenkins Adresse gefolgt von /github-webhook/Der abschließende Schrägstrich ist wichtig.
  5. Legen Sie den Inhaltstyp fest zu application/json und wählen Sie Nur das Push-Ereignis.
  6. Speichern und testen. GitHub sendet eine ping sofort. Ein grünes Häkchen darunter Kürzliche Lieferungen Mittel verbinden Jenkins Ich habe es akzeptiert.
# 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/

Senden Sie einen Commit, um zu bestätigen, dass die Schleife geschlossen ist. Der Job sollte innerhalb weniger Sekunden ohne manuelle Eingriffe in der Build-Warteschlange erscheinen. Falls nichts passiert, öffnen Sie den Webhook in GitHub und lesen Sie die Meldung. Kürzliche Lieferungen Antwortcode: Ein 403-Fehler deutet normalerweise darauf hin, dass Jenkins Sicherheitseinstellungen blockieren den anonymen Zugriff auf den Endpunkt, während ein Timeout bedeutet, dass GitHub den Endpunkt nicht erreichen kann. Jenkins URL überhaupt.

Sobald die Builds automatisch ausgelöst werden, besteht die verbleibende Reibungsverlustrate in der Regel aus einer Handvoll wiederkehrender Fehler.

gemeinsam Jenkins GitHub-Integrationsfehler und deren Behebung

Nahezu jede fehlgeschlagene Integration lässt sich in eine der folgenden Kategorien einordnen, und jede weist ein charakteristisches Symptom auf, das direkt auf die Ursache hinweist.

  • Keine Git-Option unter Quelle Code Management: Das Git-Plugin ist nicht installiert oder nicht geladen. Installieren Sie es erneut von Verwalten Jenkins > Plugins, neu starten Jenkinsund laden Sie die Seite mit der Jobkonfiguration neu.
  • „Verbindung zum Repository fehlgeschlagen“ auf einem öffentlichen Server URL: Git fehlt in der Jenkins Host. Installieren Sie Git und bestätigen Sie anschließend mit git --version und den Pfad unter Verwalten Jenkins > Werkzeuge.
  • Authentifizierung bei einem privaten Repository fehlgeschlagen: Es wird ein Kontopasswort verwendet. Ersetzen Sie es durch ein persönliches Zugriffstoken, wie oben beschrieben, oder wechseln Sie zu einem SSH-Schlüssel.
  • Nach einem Push starten die Builds nie: entweder GitHub-Hook-Trigger Das Kontrollkästchen ist nicht markiert, oder GitHub kann die Website nicht erreichen. Jenkins URLÜberprüfen Sie das Webhook-Zustellungsprotokoll in den Repository-Einstellungen.
  • Der falsche Zweig wurde erstellt: die Zweigspezifizierer behält weiterhin die Standardeinstellung bei */master während das Repository verwendet mainAktualisieren Sie den Spezifizierer entsprechend.
  • Der Bezahlvorgang funktionierte gestern noch, heute aber nicht mehr: Das persönliche Zugriffstoken ist abgelaufen. Generieren Sie ein neues Token und aktualisieren Sie die gespeicherten Anmeldeinformationen.

Überprüfen Sie auch: Besten Jenkins Alternativen (Open Source & kostenpflichtig) und der CI / CD-Pipeline Schritt für Schritt, der auf der hier hergestellten Verbindung aufbaut.

Häufig gestellte Fragen

Ja. Das Git-Plugin klont von jedem Git-Host, also von der Quelle. Code Die Verwaltungsschritte sind identisch. Lediglich die Webhook-Konfiguration unterscheidet sich, und es wird ein dediziertes GitLab oder ein dediziertes GitLab- oder Bitbucket Plugins bieten hostspezifische Auslöser und Statusberichte.

Für alles, was über eine Demonstration hinausgeht, ja. JenkinsDie Datei speichert die Pipeline Die Definition befindet sich im Repository selbst, sodass die Build-Schritte versioniert und zusammen mit dem Code überprüft werden, anstatt nur im Repository zu existieren. Jenkins UI

AI Assistenten fassen die Protokolle fehlgeschlagener Builds zusammen, schlagen den wahrscheinlich fehlerhaften Commit vor und entwerfen Pipeline-Schritte anhand einer Repository-Struktur. RevPrüfen Sie jeden Vorschlag sorgfältig, bevor Sie ihn anwenden, insbesondere alles, was mit Qualifikationen zu tun hat.

Nein. KI beschleunigt zwar die Diagnose und Konfigurationserstellung, aber Orchestrierung, Planung und Protokollierung erfordern weiterhin einen Build-Server. Betrachten Sie KI als einen Assistenten, der auf einem bestehenden System aufsetzt. Jenkins, kein Ersatz dafür.

Ja. Umfrage SCM Die Funktion „Build-Trigger“ prüft das Repository regelmäßig mithilfe von Cron-Syntax. Sie funktioniert zwar hinter einer Firewall, führt aber zu unnötigen Anfragen und verzögerten Builds. Daher sollten Webhooks bevorzugt werden. Jenkins ist erreichbar.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: