Jenkins kontinuierliche Integration GitLab-Projekt GitLab löst die Jenkins-Aufgabe nach dem Absenden des Zweigs aus. Kontinuierliche Integration CI/CD Super detailliert und super viele Bilder

1. Stellen Sie den Hintergrund vor

Git wird normalerweise verwendet, um das Projekt während der Projektentwicklung zu verwalten.
Git ist sogar noch wichtiger, wenn mehrere Personen gemeinsam Projekte entwickeln.
Da das Projekt relativ privat ist und nicht öffentlich gemacht werden kann, verwendet das Projektteam den privaten Server von GitLab und
alle entwickeln im Entwicklungszweig (Gelegentlich ist ein unabhängiger Zweig erforderlich.) )
Nachdem die Entwicklung abgeschlossen ist, testen Sie sie zunächst selbst. Wenn keine grundlegenden Probleme vorliegen, senden Sie sie an den Testzweig.
Bitte fügen Sie eine Bildbeschreibung hinzu

1.1 Vorheriger Prozess

  • Manuelles Front-End-Paketieren – Melden Sie sich beim Testserver an – Senden Sie es an das Tomcat- oder Nginx-Verzeichnis
  • Manuelles Packen des Backends – Melden Sie sich beim Testserver an – Stoppen Sie das ursprüngliche Projekt – Senden Sie es an das Verzeichnis – Führen Sie das Projekt aus

Nach mehrmaliger Wiederholung ist dieser Vorgang sehr umständlich, manchmal ist die Verpackung nicht erfolgreich und der Code wird nicht aktualisiert.
Daher sollte dieser Teil durch eine Maschine ersetzt werden. Hier wurde Jenkins ausgewählt, um bei der Integration des Projekts zu helfen.

1.2 Aktueller Prozess

  • Das Frontend wird an den Testzweig übermittelt, nachdem die Entwicklung des Entwicklungszweigs abgeschlossen ist.
  • Das Backend wird an den Testzweig übermittelt, nachdem die Entwicklung des Entwicklungszweigs abgeschlossen ist.

Alle weiteren Arbeiten werden Jenkins übergeben.

1.3 Integrationsprozess

  • Ziehen Sie den angegebenen Zweig aus dem Git-Repository
  • Wechseln Sie die entsprechende Version (Node, Java)
  • Überprüfen Sie Codeabhängigkeiten
  • Verpacken Sie das Projekt
  • Dockerfile ausführen
  • Senden Sie das Docker-Image an Harbor
  • Benachrichtigen Sie Rancher, um das Projekt zu aktualisieren
  • Statisches Code-Scannen
  • Geben Sie Scanberichte und Ergebnisse aus
  • Benachrichtigen Sie PingCode (agile Plattform), dass die Integration abgeschlossen ist (einschließlich Zweigstatus und Bereitstellungsstatus).
  • E-Mail-Benachrichtigung zum Abschluss von CI/CD (derzeit deaktiviert, zu nervig)

Der aktuelle Artikel befasst sich nur mit der Projektverpackung
Die restlichen Schritte finden Sie in anderen Artikeln

1.4 Aktuelle Ergebnisse

Derzeit werden viele Projekte von Jenkins verwaltet
, und dahinter steht eine Reihe kontinuierlicher Integrationsprozesse. Am Ende werden die Projekte auf K8s ausgeführt (einige kleine und alte Projekte werden immer noch von Docker-Compose verwaltet). Das Folgende
ist eine Projektansicht durch Jenkins, die zeigt, dass es bereits viele Projekte gibt. Projekt
Bitte fügen Sie eine Bildbeschreibung hinzu

1.5 Voraussetzungen

Erfordert, dass Ihre Umgebung dies bereits getan hat

  • Jenkins
  • GitLab
  • Projektzweig

2. Konfiguration des Serverprojekts

Melden Sie sich zunächst beim Server an und erstellen Sie einen Ordner zum Speichern des Projekts.
Der Name der Datei ist beliebig, es ist jedoch am besten, den Namen zu kennen (in meinem Fall lautet er docker-{Projektname}).

Hier nehme ich als Beispiel das von mir in GitLab gepackte Gerüst (SpringBoot-Projekt).
Ich habe ein neues erstellt: test-template.
Da es sich bei diesem Projekt um ein Back-End-Projekt handelt, habe ich unter test-template einen neuen Backend-Ordner erstellt.
Bitte fügen Sie eine Bildbeschreibung hinzu

verwendenpwdBefehl zum Aufzeichnen des aktuellen Pfades

当前的路径是:/home/test-template/backend

Dieser Ordner enthält den Quellcode des Projekts auf GitLab

3. Jenkins-Projektkonfiguration

3.1 Neues Projekt

Melden Sie sich bei Jenkins an und wählen Sie ausNeuer Gegenstand
Bitte fügen Sie eine Bildbeschreibung hinzu

3.2 Geben Sie die Informationen ein

Der Projektname ist die Regel test-template-backend im Ordner gerade.
Es identifiziert es als das Backend dieses Projekts.
Klicken SieOK
Bitte fügen Sie eine Bildbeschreibung hinzu

3.3 Konfigurationskommentare

ausfüllenBeschreibung
Die Beschreibung des Projekts kann so detailliert wie möglich sein, um die Wartung zu erleichtern.
Klicken SieFortschrittlich
Bitte fügen Sie eine Bildbeschreibung hinzu

3.4 Konfigurationsordner

Nachdem Sie auf „Erweitert“ geklickt haben,
wird Folgendes angezeigtVerzeichnis
Füllen Sie das gerade auf dem Server aufgezeichnete Verzeichnis aus
Bitte fügen Sie eine Bildbeschreibung hinzu

3.5 Git-Adresse abrufen

Konfigurieren Sie die GitLab-Projektadresse
. Beachten Sie, dass die Adresse sein muss.gitFinale
Bitte fügen Sie eine Bildbeschreibung hinzu

3.6Git-Zweig

Konfigurieren Sie den Zweig, um den Quellcode abzurufen. Die Konfiguration ist hier*/prüfen
Bitte fügen Sie eine Bildbeschreibung hinzu

3.7 WebHook aktivieren

Überprüfen:Erstellen, wenn eine Änderung an GitLab übertragen wird …

Kopieren Sie die Webhook-URL: http://172.16.1.150:10101/project/test-template-backend (jedes Projekt ist anders!!!)

Die folgende Oberfläche wird angezeigt
. Klicken SieFortschrittlichNehmen Sie eine detaillierte Konfiguration vor
Bitte fügen Sie eine Bildbeschreibung hinzu

3.8 Konfigurationszweig

Um den Listening-Zweig auszuwählen, habe ich hier den regulären Abgleich gewählt..*prüfenZweig
Bitte fügen Sie eine Bildbeschreibung hinzu

3.9 Konfigurieren Sie den geheimen Schlüssel

KlickenGenerierengenerierenSecretToken
Bitte fügen Sie eine Bildbeschreibung hinzu

3.10 Skript ausführen

wählenBauen
KlickenShell ausführenum das Shell-Skript auszuführen

Hier gibt es mehrere Möglichkeiten

  • Fügen Sie die Shell in das Projekt ein und folgen Sie dem Projekt (der Vorteil besteht darin, dass Sie die Shell auch jederzeit einreichen und ändern können).
  • Legen Sie die Shell auf den Server (der Vorteil besteht darin, dass die Person, die den sicheren Zweig übergeben hat, keine Berechtigung hat, die gepackten Anweisungen zu ändern).
  • Die Shell wird in Jenkins platziert (der Vorteil besteht darin, dass Personen, die mit der Bedienung des Servers nicht vertraut sind, die auszuführenden Anweisungen bedienen können).
    Bitte fügen Sie eine Bildbeschreibung hinzu

3.11 Schreibanweisungen

Geben Sie den Shell-Befehl ein, den Sie ausführen möchten.
Da der Dienst gestoppt und erneut gestartet werden muss,
können Sie zuerst versuchen, den Dienst zu beenden und dann java -jar auszuführen.
Mein Plan hier ist, ihn im folgenden Vorgang in Docker zu packen und Schieben Sie es dann entsprechend dem Prozess an den K8s-Cluster.
Sie können diesen Schritt selbst ausführen
Bitte fügen Sie eine Bildbeschreibung hinzu

3.12Projekt speichern

Klicken Sie untenSpeichern
Testen Sie zunächst, ob die Konfiguration wirksam ist

3.13 Testintegration

KlickenJetzt bauen
Stellen Sie sicher, dass das Projekt auf GitLab vorhanden istprüfenZweig ha! !
Bitte fügen Sie eine Bildbeschreibung hinzu

3.14 Ergebnisse anzeigen

kann gesehen werden#1、#2Erfolgreich.
Sie können versuchen, auf #1 #2 zu klicken, um es anzusehen
Bitte fügen Sie eine Bildbeschreibung hinzu

3.15 Server anzeigen

Wenn Sie sich die Datei ansehen, werden Sie feststellen, dass Jenkins uns dabei geholfen hat, das Projekt zum Erliegen zu
bringenZielVerzeichnis auchJenkinsimplementierenmvnVerpacktes Verzeichnis
Bitte fügen Sie eine Bildbeschreibung hinzu

4.GitLab-Projektkonfiguration

Öffnen Sie das GitLab-Projekt
SelectEinstellungen
wählenIntegrationen
Bitte fügen Sie eine Bildbeschreibung hinzu

4.1 Webhook konfigurieren

ausfüllenURLGeben Sie gerade die Webhook-Adresse von Jenkins
einSecretTokenDer für die Schaltfläche in Jenkins generierte geheime Schlüssel
Bitte fügen Sie eine Bildbeschreibung hinzu

4.2 Webhook hinzufügen

KlickenWebhook hinzufügen
Bitte fügen Sie eine Bildbeschreibung hinzu

4.3 Testbenachrichtigung

KlickenPrüfen
wählenPush-Ereignisse
Klicken Sie hier, um zu sehen, ob GitLab Jenkins normal über WebHook benachrichtigen kann
Bitte fügen Sie eine Bildbeschreibung hinzu

4.4 Normale Benachrichtigung

Sehen:HTTP 200
Dies zeigt, dass GitLab Jenkins jetzt normal benachrichtigen kann.
Bitte fügen Sie eine Bildbeschreibung hinzu

5. Testen Sie das Ganze

Senden Sie an dieser Stelle den Code an den Testzweig des Projekts in GitLab.
Ein WebHook wird ausgegeben, um Jenkins zu veranlassen,
den Befehl in der Shell abzuschließen
. Damit ist das grundlegende CI/CD abgeschlossen. Für
eine komplexere Integration lesen Sie bitte andere Artikel auf dem Blog.

Supongo que te gusta

Origin blog.csdn.net/w776341482/article/details/128931716
Recomendado
Clasificación