Als freiberuflicher Ingenieur nehme ich an einem Projekt mit Jenkins teil, aber nach dem Studium wollen wir das Wissen verbreiten, indem wir einen Qiita-Artikel schreiben! Also habe ich beschlossen, es zu schreiben. Dieser Artikel steht kurz vor dem Schreiben, wird jedoch von Zeit zu Zeit aktualisiert. https://www.udemy.com/course/jenkins-from-zero-to-hero/learn/lecture/19367702 Während ich aus udemys Video lerne, schreibe ich während der Recherche, daher würde ich mich sehr freuen, wenn Sie auf Fehler hinweisen könnten.
Menschen, die sich für Jenkins bei der Arbeit entschieden haben, aber keine Ahnung haben, wie sie es verwenden sollen Was ist Jenkins? Menschen Mac-Benutzer
CI-Tool
CI steht für Continuous Integration, was wörtlich übersetzt als Continuous Integration übersetzt wird. Es wird auch als kontinuierliche Integration bezeichnet. Wenn Sie die Prüfung zum Ingenieur für grundlegende Informationstechnologie abgelegt haben, haben Sie möglicherweise nur die Station gesehen.
CircleCI, das in letzter Zeit populär geworden ist, ist auch eines der CI-Tools. Übrigens heißt es, dass alles, was Sie mit Jenkins tun können, mit CircleCI erledigt werden kann.
Es gibt jedoch immer noch viele Unternehmen, die Jenkins einsetzen, daher denke ich nicht, dass der Erwerb von Jenkins-Kenntnissen derzeit ein großer Kostenfaktor sein wird.
Ziel der CI-Tools ist es, die Entwicklungsgeschwindigkeit und Softwarequalität aufrechtzuerhalten, indem die Teile, die über Commit → Build → Test automatisiert werden können, effizient ausgeführt werden.
Übrigens steht CD, die oft als verwandtes Wort erscheint, für kontinuierliche Bereitstellung und ist ein aufwärtskompatibles Konzept von CI. Nicht nur Commit-> Build-> Test, sondern auch die nachfolgende Release-> Bereitstellung wird für eine effiziente Entwicklung automatisiert.
Mit Jenkins können Sie Builds und Tests automatisieren. Und wenn ein Build oder Test fehlschlägt, kann Jenkins ihn sofort überprüfen, was zur Früherkennung von Fehlern führen und zur Verbesserung der Softwarequalität beitragen kann.
Es braucht Zeit, um Jenkins zu lernen und eine Jenkins-Umgebung aufzubauen. Es scheint, dass viele Unternehmen jetzt zu CircleCI wechseln, sodass das, was Sie gelernt haben, möglicherweise verschwendet wird.
Installieren Sie mit Homebrew. Homebrew ist eine Software zum Installieren von Software und Verwalten von installierter Software. Wenn Sie einen Mac verwenden, haben Sie ihn wahrscheinlich installiert. Wenn Sie ihn jedoch noch nicht installiert haben, geben Sie den folgenden Befehl in das Terminal ein, um ihn zu installieren.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Geben Sie dann den Befehl ein, um Jenkins mit Homebrew auf dem Terminal zu installieren. (Es wird einige Zeit in Anspruch nehmen)
brew install jenkins
Geben Sie nach Abschluss der Installation den Befehl zum Starten von Jenkins auf dem Terminal ein. (Da es sich um einen häufig verwendeten Befehl handelt, registriere ich ihn in clipy.)
launchctl start homebrew.mxcl.jenkins
Nachdem Jenkins gestartet wurde, öffnen Sie einen Browser und geben Sie "localhost: 8080" ein. Da Jenkins ein http-Server ist, greifen wir mit der Portnummer 8080 darauf zu.
Nach einer Weile erscheint der folgende Bildschirm.
Ich habe das Passwort in den rot dargestellten Pfad eingegeben und wurde aufgefordert, es einzugeben. Wenn Sie auf dem Terminal Folgendes tun, wird das Kennwort angezeigt.
cat Der Pfad wird rot angezeigt
Nach Eingabe des Passworts wird der folgende Bildschirm angezeigt.
Sie werden gefragt, ob Sie das empfohlene Plug-In installieren oder das Plug-In auswählen und installieren möchten. Wenn Sie links auswählen, wird der folgende Bildschirm angezeigt und die empfohlene Plug-In-Installation wird gestartet.
Nach Abschluss der Installation wird der folgende Bildschirm angezeigt. Geben Sie alle ein und drücken Sie Speichern und fahren Sie unten rechts fort. Denken Sie daran, was Sie eingeben, da es verwendet wird, um sich bei Jenkins anzumelden.
Wenn die Eingabe abgeschlossen ist, wird der folgende Bildschirm angezeigt. Sie werden gefragt, ob Sie die URL ändern möchten. Ändern Sie sie also nach Ihren Wünschen. Ich benutze es zum Lernen, also habe ich es nicht geändert. Klicken Sie auf Speichern und Fertig stellen.
Der folgende Bildschirm wird angezeigt. Klicken Sie also auf Start mit Jenkins.
Wenn der folgende Bildschirm angezeigt wird, ist die Installation von Jenkins abgeschlossen.
Ich glaube, Sie haben Jenkins während der Installation mit dem folgenden Befehl gestartet.
launchctl start homebrew.mxcl.jenkins
Wenn Sie nach dem Start den Befehl end nicht in Terminal eingeben, wird er weiterhin gestartet. Geben Sie daher den folgenden Befehl in terminal ein, um zu beenden. (Da es sich um einen häufig verwendeten Befehl handelt, registriere ich ihn in clipy.)
launchctl stop homebrew.mxcl.jenkins
Ich werde es beenden, wenn ich damit fertig bin.
Da ich Jenkins mit Brew installiert habe, deinstalliere ich es auch mit Brew. Geben Sie den folgenden Befehl auf dem Terminal ein, um ihn zu deinstallieren.
brew uninstall jenkins
Allein damit bleiben jedoch verschiedene Daten wie der beim Starten von Jenkins festgelegte Benutzername und das Kennwort erhalten. Wenn Sie also Jenkins erneut installieren, werden Sie mit diesen Informationen angemeldet. Wenn Sie es löschen möchten, können Sie es vollständig löschen, indem Sie den folgenden Befehl auf dem Terminal eingeben. Unter dem Benutzerverzeichnis befindet sich ein Benutzernamenverzeichnis und darunter ein .jenkins-Verzeichnis. Löschen Sie es daher mit dem Befehl rm -rf. (Der Pfad ist für jede Person unterschiedlich. Bitte lesen Sie ihn.)
cd /Users/Nutzername/.jenkins
cd ../
rm -rf .jenkins
2020/09/02
Jenkins hat das Konzept von Jobs. Ein Job hier ist eine Gruppe von automatisierten Prozeduren. Ich denke, dass sich das Verständnis verbessern wird, wenn Sie versuchen, einen zu erstellen. Lassen Sie uns also sofort einen Job erstellen.
Klicken Sie auf dem Bildschirm unten auf Neuen Job erstellen.
Zum Bildschirm zum Erstellen von Jobs verschoben.
Geben Sie einen Artikelnamen ein, der den Jobnamen darstellt. Geben Sie einen beliebigen Namen ein.
Geben Sie einen Namen Ihrer Wahl ein und wählen Sie Build Freestyle Project. Es ist ein kleines altes Tool, daher habe ich ein paar Macken bei der Arbeit mit der Benutzeroberfläche.
[Tips]
Wenn Sie ein Freestyle-Projekt erstellen, können Sie die grundlegendsten Jobs erstellen.
Beliebiges SCM(source code manager:Github oder Subversion)Quellcode von
Sie können es abrufen und das Projekt auf jedem Build-System erstellen.
Außerdem kann es für verschiedene beliebige Automatisierungen verwendet werden.
Ich bin mir immer noch nicht sicher, was die anderen Gegenstände sind, deshalb werde ich sie später erklären.
Diesmal ist es zum Testen, also in diesem Freestyle-Projekt
"Ich bin der allererste Job bei Jenkins"
Führen Sie ein Shell-Skript aus, das angezeigt wird.
Klicken Sie unten links auf OK, um den folgenden Bildschirm anzuzeigen.
Es gibt verschiedene Einstellungen, aber diesmal möchte ich die Zeichenfolge mithilfe eines Shell-Skripts anzeigen. Daher verwende ich die meisten Einstellungen nicht.
Wenn Sie nach unten scrollen, gibt es ein Element namens "Erstellen". Wählen Sie "Shell ausführen" unter "Build-Prozedur hinzufügen".
Anschließend wird ein Formular zur Eingabe von Shell-Befehlen angezeigt. Geben Sie Folgendes ein.
echo "Ich bin der allererste Job bei Jenkins"
Wenn Sie fertig sind, klicken Sie auf Speichern.
Sie haben jetzt Ihren ersten Job erstellt. Klicken Sie dann links im Menü auf Build ausführen. Diese Operation wird als "Erstellen eines Jobs" bezeichnet.
Beim Erstellen des Jobs wurde ● </ font> # 1 </ u> im Erstellungsverlauf erstellt. Dies repräsentiert das Build-Ergebnis. Es bedeutet ● </ font>, aber wenn es ● (blau) </ font> ist, ist der Build erfolgreich und ● ( Rot) </ font> zeigt einen Buildfehler an. Wenn Sie den Build in der Mitte abbrechen, lautet er ● (grau) </ font>. Da \ # 1 ein Link ist, klicken Sie darauf.
Anschließend können Sie die Erstellungszeit überprüfen und im Menü auf der linken Seite verschiedene Dinge für das Erstellungsergebnis überprüfen. Detaillierte Informationen zur Erstellungszeit finden Sie unter "Konsolenausgabe". Klicken Sie also, um sie zu öffnen.
Dies zeigt das Protokoll, als der Job erstellt wurde. In der zweiten Zeile von unten steht "Ich bin der allererste Job in Jenkins". Mit anderen Worten, Sie können bestätigen, dass das im Formular eingegebene Shell-Skript erfolgreich ausgeführt wurde.
Die tatsächliche automatische Erstellung und der automatische Test erfordern etwas kompliziertere Einstellungen. Dies ist jedoch der allgemeine Ablauf beim Erstellen eines Jobs.
Sie können zur oberen Seite zurückkehren, indem Sie oben links auf das Jenkins-Banner klicken.
Sie können sehen, dass der Job erstellt wurde und sich die Anzeige geändert hat. Der Jobname des zuvor erstellten Jobs wird angezeigt. Sie können S und W auf der linken Seite sehen.
Für S wird ein farbiges ● angezeigt. Repräsentiert das endgültige Build-Ergebnis. ● </ font> erfolgreich ● </ font> schlägt fehl ● </ font> wurde nicht ausgeführt oder abgebrochen
W kann herausfinden, wie viele der neuesten erfolgreich waren. : sonnig: sind alle erfolgreich : teilweise_sunny: ist ein wenig erfolgreich : umbrella2: alles fehlgeschlagen
Sie können den erstellten Job bearbeiten. Ich habe die Zeichenfolge im Shell-Skript angezeigt, aber jetzt verwenden wir das Datum des Shell-Befehls, um das Datum anzuzeigen, und den whoami-Befehl, um meinen Benutzernamen zu kennen.
Wählen Sie auf der oberen Seite einen Job aus und klicken Sie in der linken Menüleiste auf Einstellungen.
Schreiben Sie das Shell-Skript wie folgt um.
Vor der Korrektur
echo "Ich bin der allererste Job bei Jenkins"
Überarbeitet
echo "$(whoami)Herr Hallo! Datum und Uhrzeit von heute$(date)ist"
Klicken Sie nach dem Umschreiben auf Speichern, um den Build auszuführen, und versuchen Sie, die Konsolenausgabe aus dem neuesten Build-Ergebnis zu öffnen.
Sie können bestätigen, dass Sie den Job bearbeiten konnten.
Wenn Sie Jenkins auf Ihrem Mac installiert haben, wird der Job im folgenden Verzeichnis ausgeführt:
/Users/Nutzername/.jenkins/workspace/Job, der Zeichen in der Shell ausgibt
Sie können dieses Verzeichnis anzeigen, indem Sie den Befehl pwd ausführen, der das aktuelle Verzeichnis im Shell-Skript Ihres Jobs anzeigt.
Es ist anders, wenn Sie Jenkins unter Amazon Linux von EC2 unter AWS oder Jenkins unter Linux von VirtualBox erstellen. Wenn Sie es nicht wissen, können Sie dies überprüfen, indem Sie ein Shell-Skript erstellen und erstellen, das pwd in Ihrem Job ausführt.
Unter Mac ist der Bereich unter dem Verzeichnis .jenkins ein versteckter Ordner. Sie müssen ihn daher so einstellen, dass der versteckte Ordner angezeigt wird, wenn Sie ihn mit dem Finder anzeigen.
Wenn Sie Jenkins auf Ihrem Mac installiert haben, werden die Auftragsdaten im folgenden Verzeichnis gespeichert.
/Users/Nutzername/.jenkins/jobs/Job, der Zeichen in der Shell ausgibt
Sie können Protokolle auch direkt von hier erhalten. Wenn Sie damit herumspielen, kann Jenkins die Jobdaten möglicherweise nicht lesen und es kann zu einem Fehler kommen. Sie sollten daher erst dann damit spielen, wenn Sie sich daran gewöhnt haben. (Geschichte erleben)
Bis zu diesem Zeitpunkt gab es nur ein Erfolgsmuster, daher werde ich versuchen, absichtlich zu scheitern. Wählen Sie einen Job aus und gehen Sie zu dem Bildschirm, auf dem Sie das Shell-Skript über die Einstellungen eingeben können.
Löschen Sie das "" am Ende.
Vor der Korrektur
echo "$(whoami)Herr Hallo! Datum und Uhrzeit von heute$(date)ist"
Überarbeitet
echo "$(whoami)Herr Hallo! Datum und Uhrzeit von heute$(date)ist
Klicken Sie auf Speichern und dann auf Build ausführen.
Sie können sehen, dass der Build-Verlauf rot geworden ist. Das heißt, der Build ist fehlgeschlagen. In diesem Fall weiß ich, warum der Build fehlgeschlagen ist, aber lassen Sie uns überprüfen, warum der Build fehlgeschlagen ist. Folgen Sie dem rötlichen Link aus dem Build-Verlauf und klicken Sie auf Konsolenausgabe.
Sie können die folgenden Informationen aus dem Protokoll lesen
Welche Zeile hat den Fehler
/var/folders/sp/s32xwxcx69343zl_szqw02kw0000gn/T/jenkins13410237169821088770.sh: line 2: unexpected EOF while looking for matching `"'
Warum ist der Fehler aufgetreten?
Build step 'Shell ausführen' marked build as failure
Das Ergebnis schlägt fehl
Finished: FAILURE
Wenn der Build fehlschlägt, überprüfen Sie zuerst die Konsolenausgabe, um die Ursache zu ermitteln.
Da das Shell-Skript am Ende kein "" enthält, stellen Sie es wieder her und führen Sie den Build erneut aus.
Vor der Korrektur
echo "$(whoami)Herr Hallo! Datum und Uhrzeit von heute$(date)ist
Überarbeitet
echo "$(whoami)Herr Hallo! Datum und Uhrzeit von heute$(date)ist"
Jetzt wird derjenige, der nicht gebaut werden konnte, wieder erfolgreich sein.
Bisher habe ich das Shell-Skript direkt auf Jenkins geschrieben, aber jetzt rufen wir das erstellte Shell-Skript auf.
"Aber wo legst du das Shell-Skript ab?"
Jenkins hat das Konzept des Arbeitsbereichs. Sie können mit Jenkins lesen, was Sie in diesen Arbeitsbereich gestellt haben. Seien Sie versichert, ich werde alles in den folgenden Schritten erklären.
"Warum muss ich ein Shell-Skript aufrufen?"
Wenn Sie sich an dieses Verfahren erinnern, können Sie Ihren Arbeitsbereich nutzen und Anwendungen effektiver gestalten.
Erstellen Sie sofort einen neuen Job.
Nennen Sie den Job "Job zum Aufrufen des Shell-Skripts", machen Sie ihn zu einem Build eines Freestyle-Projekts und klicken Sie auf OK.
Klicken Sie auf Build-Prozedur hinzufügen → Shell ausführen und dann auf Speichern.
Zu diesem Zeitpunkt ist das Shell-Skriptformular leer und in Ordnung.
Klicken Sie auf den Arbeitsbereich. Wenn Sie entweder auf die im Menü links oder rechts angezeigte klicken, gelangen Sie zur gleichen Seite.
Wenn Sie Zweifel haben, wählen Sie bitte gemäß der Krapika-Theorie.
Leorio "Warum ist es in einem solchen Fall links?
In diesem Fall bin ich nicht auf der linken Seite, also bin ich nicht ruhig. "
Krapika "Sicher aus der Perspektive des Verhaltens, wenn Menschen sich verlaufen oder einen unbekannten Weg wählen
Es scheint, dass es viele Fälle gibt, in denen Sie unwissentlich die linke auswählen. "
Wenn Sie den Arbeitsbereich öffnen, können Sie feststellen, dass der Arbeitsbereich nicht vorhanden ist. Es heißt Fehler, aber das ist normal.
Wenn Sie das Shell-Skript in den Arbeitsbereich einfügen, kann es von Jenkins aus ausgeführt werden. Die Spezifikation lautet jedoch, dass der Arbeitsbereich nur erstellt wird, wenn er einmal erstellt wurde.
Führen Sie den Build also einmal aus und öffnen Sie den Arbeitsbereich erneut.
Wenn der Bildschirm wie oben aussieht, wurde der Arbeitsbereich erstellt.
Wo ist dieser Arbeitsbereich?
/Users/Nutzername/.jenkins/workspace/Job, der ein Shell-Skript aufruft
Es ist in.
Ich habe verschiedene Dinge ausprobiert, aber ich konnte die Skriptdatei nicht von Jenkins ablegen, also habe ich ein Shell-Skript im obigen Pfad von Finder erstellt. (Ich weiß nicht, ob Jenkins das kann, also erkläre ich es so)
Erstellen Sie eine script.sh-Datei im obigen Arbeitsbereich und beschreiben Sie den Inhalt wie folgt.
script.sh
#Gibt den verwendeten Shell-Typ aus
echo "(Die Shell, die Sie verwenden, ist "$SHELL ")"
#Name anzeigen
LASTNAME=$1 #Übergeben Sie den Namen als erstes Argument
FIRSTNAME=$2 #Übergeben Sie den Nachnamen als zweites Argument
NAME=$FIRSTNAME$LASTNAME #Fügen Sie den Vornamen und den Vornamen hinzu
echo "Hallo,$NAME"
Dieses Shell-Skript gibt den Namen basierend auf der verwendeten Shell und den Argumenten aus.
Nach der Erstellung kehren Sie zur Arbeit mit Jenkins zurück.
Sie können auch die Existenz von script.sh auf Jenkins überprüfen. Wenn es nicht angezeigt wird, können Sie es überprüfen, indem Sie die Seite aktualisieren. Wenn es immer noch nicht angezeigt wird, liegt ein Fehler in dem Verzeichnis vor, in dem Sie das Shell-Skript erstellen.
Klicken Sie auf Auftragseinstellungen.
Gib Folgendes ein:
sh script.sh Ryuken Yamamoto
Dies bedeutet, dass in einer Shell namens sh das erste Argument "Ryuken" und das zweite Argument "Yamamoto" an script.sh übergeben und ausgeführt werden.
Klicken Sie nach der Eingabe auf Speichern und dann auf Build ausführen.
Wenn der Build-Verlauf ● </ font> lautet, ist er erfolgreich. Klicken Sie auf den neuesten Build-Verlauf und dann auf Konsolenausgabe.
(Die Shell, die Sie verwenden, ist "/bin/zsh ")
Hallo, Yamamoto Ryûken Mr.
Wird angezeigt, ist es erfolgreich.
Sie haben jetzt einen Job erstellt, der ein Skript ausführt, das Sie in Ihrem Arbeitsbereich platziert haben.
Sie können dieses Kapitel hier beenden. Um sich jedoch an das Shell-Skript zu gewöhnen, ändern Sie das Jenkins-Shell-Skript, um eine Variable zu erstellen, und übergeben Sie es dann an script.sh.
Öffnen Sie die Einstellungen des Jobs und gehen Sie wie folgt vor:
Vor der Korrektur
sh script.sh Ryuken Yamamoto
Überarbeitet
FIRSTNAME=Yamamoto
LASTNAME=Ryuken
sh script.sh $LASTNAME $FIRSTNAME
※Hinweis
FIRSTNAME=Yamamoto
LASTNAME=Ryuken
sh script.sh $LASTNAME $FIRSTNAME
,
FIRSTNAME=Yamamoto
LASTNAME=Ryuken
sh script.sh $LASTNAME $FIRSTNAME
Wenn Sie nach und = ein Leerzeichen setzen, schlägt die Joberstellung fehl.
Klicken Sie auf Speichern, um den Build auszuführen und den neuesten Build-Verlauf zu öffnen, um die Konsolenausgabe anzuzeigen.
Das Ergebnis ist ähnlich.
Ich habe es oft ignoriert, aber zum ersten Mal möchte ich eine der Optionen "Build Parametrization" verwenden.
Jetzt werden im Shell-Skript die Variablen FIRSTNAME und LASTNAME vorbereitet und die Werte festgelegt und verwendet.
Parametrieren Sie diese zum Erstellen. Überprüfen Sie die Build-Parametrisierung.
Wählen Sie dann eine Zeichenfolge unter Parameter hinzufügen.
Anschließend wurde ein Feld zur Eingabe des Namens, des Standardwerts und der Beschreibung angezeigt.
Geben Sie FIRSTNAME als Namen, Yamamoto als Standardwert und Nachname als Beschreibung ein.
Sie haben jetzt eine Variable für Ihren Build parametrisiert. Als nächstes erstellen Sie eine andere.
Wählen Sie die Zeichenfolge erneut unter Parameter hinzufügen aus.
Geben Sie LASTNAME als Namen, Ryuken als Standardwert und name als Beschreibung ein.
Sie haben jetzt die beiden Variablen in Ihrem Build parametrisiert.
Entfernen Sie abschließend die unnötige Beschreibung aus dem Jenkins-Shell-Skript und schreiben Sie sie wie folgt neu.
Vor der Korrektur
FIRSTNAME=Yamamoto
LASTNAME=Ryuken
sh script.sh $LASTNAME $FIRSTNAME
Überarbeitet
sh script.sh $LASTNAME $FIRSTNAME
Jetzt wird das Shell-Skript aktualisiert. Dies allein fühlt sich wie ein Vorteil an, ist aber nicht der einzige Vorteil. Hier sind die Vorteile einer echten Build-Parametrisierung. Klicken Sie auf Speichern.
An diesem Punkt werden Sie feststellen, dass sich eine Anzeige geändert hat. Der Teil, der früher eine Build-Ausführung war, wurde in einen parametrisierten Build geändert.
Klicken wir gleich darauf.
Die Build-Ausführung wurde sofort gestartet, als ich auf die Build-Ausführung geklickt habe. Durch Festlegen der Parametrisierung des Builds ist es jetzt möglich, den Wert der Variablen vor der Build-Ausführung zu ändern.
Klicken Sie auf Einmal erstellen, und öffnen Sie anschließend die Konsolenausgabe aus dem letzten Erstellungsverlauf.
Die angezeigte Zeichenfolge ist dieselbe wie im vorherigen Kapitel. Kehren Sie dann zum Projekt → Mit Parametern erstellen zurück. Dieses Mal werde ich den Nachnamen und den Namen noch einmal machen.
Klicken Sie auf Erstellen. Wenn Sie fertig sind, öffnen Sie die Konsolenausgabe aus dem neuesten Erstellungsverlauf.
Sie können sehen, dass sich der angezeigte Name geändert hat. Durch Festlegen der Build-Parametrisierung ist es jetzt möglich, Variablen bei jeder Ausführung eines Builds zu ändern. Sie können auch Standardwerte festlegen. Dies ist eine nützliche Funktion, wenn Sie bei jeder Ausführung eines Builds Variablen ändern müssen.
Die Verwendung von Build-Parametern ist endlos. In diesem Kapitel ist es in Ordnung, wenn Sie feststellen, dass die Build-Parametrisierung auf verschiedene Arten verwendet werden kann.
Die Build-Parametrisierung kann ausgewählt und eine Zeichenfolge eingegeben werden. Schließen Sie alle Build-Parametrierungen einmal ab.
Wählen Sie dann zusätzliche Parameter aus.
Nehmen Sie Einstellungen vor, um den Nachnamen und den Vornamen gemäß dem folgenden Bild auswählbar zu machen. Sie können den Nachnamen aus "Yamamoto", "Katsumata" und "Bannai" auswählen. Sie können auf die gleiche Weise einen Namen erstellen und zwischen "Ryuken", "Kenta" und "Manabu" auswählen.
Klicken Sie auf Speichern und dann auf Mit Parametern erstellen.
Ich konnte bestätigen, dass der Nachname und der Vorname auswählbar sind. Ändern Sie den Nachnamen in "Bannai" und den Namen in "Manabu".
cool. (Nachahmung eines ausländischen Lehrers)
Klicken Sie dann auf Erstellen und dann auf Konsolenausgabe aus dem letzten Erstellungsverlauf.
Es wurde bestätigt, dass die ausgewählten Namen "Bannai" und "Manabu" angezeigt werden. Abgesehen davon ist Manab genauso alt wie ich und vier Monate auseinander.
Sie haben jetzt die Build-Parametrisierung selektiv gemacht.
Früher habe ich gezeigt, welche Shell ich verwendet habe, aber da ich sie nicht jedes Mal anzeigen muss, werde ich die Build-Parametrisierung verwenden, um sie anzuzeigen oder auszublenden.
Wählen Sie in den Jobeinstellungen einen booleschen Wert unter Parameter hinzufügen aus.
Der Name ist SHOWSHELL, die Standardeinstellung ist deaktiviert, da ich sie ausblenden möchte, und die Beschreibung kann überprüft werden, um die von Ihnen verwendete Shell anzuzeigen. Wird besorgt.
Klicken Sie auf Speichern.
Schreiben Sie als Nächstes die Datei script.sh im Arbeitsbereich neu, sodass die Shell angezeigt wird, wenn SHOWSHELL true ist (1), und die Shell nicht angezeigt wird, wenn SHOWSHELL false ist (0).
Vor der Korrektur
/Users/Nutzername/.jenkins/workspace/Job, der Zeichen in der Shell ausgibt/script.sh
#Gibt den verwendeten Shell-Typ aus
echo "(Die Shell, die Sie verwenden, ist "$SHELL ")"
#Name anzeigen
LASTNAME=$1 #Übergeben Sie den Namen als erstes Argument
FIRSTNAME=$2 #Übergeben Sie den Nachnamen als zweites Argument
NAME=$FIRSTNAME$LASTNAME #Fügen Sie den Vornamen und den Vornamen hinzu
echo "Hallo,$NAME"
Überarbeitet
/Users/Nutzername/.jenkins/workspace/Job, der Zeichen in der Shell ausgibt/script.sh
#Variablendefinition
LASTNAME=$1 #Übergeben Sie den Namen als erstes Argument
FIRSTNAME=$2 #Übergeben Sie den Nachnamen als zweites Argument
SHOWSHELL=$3 #Übergeben Sie dem dritten Argument ein Flag, ob die Shell gedruckt werden soll
#Gibt den verwendeten Shell-Typ aus
if [ "$SHOWSHELL" = "true" ]; then
echo "(Die Shell, die Sie verwenden, ist "$SHELL ")"
fi
#Name anzeigen
NAME=$FIRSTNAME$LASTNAME #Fügen Sie den Vornamen und den Vornamen hinzu
echo "Hallo,$NAME"
Kehren Sie zur Arbeit mit Jenkins zurück und klicken Sie auf Mit Parametern erstellen.
Dieses Mal wird die von mir verwendete Shell nicht mehr angezeigt. Klicken Sie einfach auf Erstellen, um die Konsolenausgabe aus dem neuesten Build-Verlauf anzuzeigen.
Es wurde bestätigt, dass der bisher angezeigte Shell-Typ nicht mehr angezeigt wird.
Sie können es jetzt mithilfe der Build-Parametrisierung ein- oder ausblenden.
Bringen Sie die Rails-Anwendung von GitHub und erstellen Sie einen Job zum Testen und zur statischen Analyse in Jenkins.
So erstellen Sie eine Rails-Anwendung, wie installieren Sie Homebrew, eine Software zur Installation von rbenv und dessen rbenv, mit der die Version von ruby, rspec, die in automatischen Tests verwendet wird, und rubocop, das als statisches Analysetool verwendet wird, problemlos umgeschrieben werden kann Ich werde die Einführungsmethode weglassen. Auf dem folgenden GitHub sind persönliche Apps mit rspec und rubocop installiert, daher werde ich dies anhand eines Beispiels erläutern. https://github.com/EL93019205/stuctive.git Rails verwendet 5.2.3 und Ruby verwendet 2.5.1.
Es gibt einen Artikel, in dem die Vorgehensweise zum Installieren des Plug-Ins vorgestellt wird. Es ist jedoch kein Plug-In erforderlich, außer dem Standard-Plug-In. ~~ Das Plug-In ist total alt und nicht sehr nützlich ~~
Jetzt erstellen wir einen neuen Job.
Jobname ist Schienen Muss der Einfachheit halber auf Englisch sein. Setzen Sie es diesmal auf "stuctive_auto_test".
Der Jobtyp sollte Freestyle Project Build sein.
Klicken Sie auf OK, wenn Sie fertig sind.
Da es ein Element namens Quellcodeverwaltung gibt, werde ich es Git machen. Dann wird der folgende Bildschirm angezeigt.
GitHub in der Repository-URL Was soll ich nun in die Repository-URL eingeben? Die Antwort ist auf GitHub.
Klicken Sie unter der folgenden URL (der URL zu meinem persönlichen App-Repository) auf die grüne Schaltfläche Code und dann auf das Symbol rechts neben der URL. Dieses Symbol steht für eine Kopie. Es ist ein öffentliches Repository, daher denke ich, dass jeder es kopieren und verwenden kann. https://github.com/EL93019205/stuctive
Fügen Sie dann "https://github.com/EL93019205/stuctive.git" wie unten gezeigt in die Repository-URL ein.
Dies ist die einzige Einstellung für die Quellcodeverwaltung. Sie müssen mit nichts anderem spielen.
Hast du gedacht: "Was? Das ist es?" Ja das ist es.
Wenn Sie über eine sichere Einstellung verfügen, müssen Sie möglicherweise Anmeldeinformationen festlegen. Wenn der zu automatisierende Zweig nicht Master ist, müssen Sie möglicherweise den zu erstellenden Zweig ändern, aber meine persönliche App befindet sich im öffentlichen Repository. Und da der Zweig, den Sie automatisieren möchten, Master ist, müssen Sie sich nicht damit anlegen.
Diese Einstellung klont die Rails-Anwendung in Ihren Arbeitsbereich.
Klicken Sie auf Einmal speichern.
Öffnen Sie den Arbeitsbereich.
Sie können sehen, dass der Arbeitsbereich nicht vorhanden ist.
Wie ich oben geschrieben habe, wird der Arbeitsbereich nur erstellt, wenn der Build einmal ausgeführt wird. Klicken Sie also auf Build ausführen.
Sie können sehen, dass der Build-Verlauf blau geworden ist.
Öffnen Sie den Arbeitsbereich erneut.
Es ist wie folgt. Wenn Sie jemals eine Rails-Anwendung geschrieben haben, sind Sie wahrscheinlich mit allen Dateien vertraut.
Diese Daten sind genau die gleichen wie die Daten auf GitHub unten. https://github.com/EL93019205/stuctive
Auf diese Weise ist es sehr einfach, eine Reihe von Rails-Anwendungsdaten auf GitHub in Ihren Jenkins-Arbeitsbereich zu kopieren.
Sie müssen lediglich den automatisierten Testbefehl mit diesen abgerufenen Daten in dem Verzeichnis ausführen, das die Gem-Datei enthält. Der automatische Testbefehl ist je nach Version der Schienen völlig unterschiedlich. Da wir diesmal jedoch Schienen 5.2.3 verwenden, kann er mit dem folgenden Befehl ausgeführt werden.
bundle exec rspec
bundle exec rubocop
Lass uns das machen.
Öffnen Sie die Einstellungen.
Scrollen Sie nach unten und fügen Sie den vorherigen Befehl in Run Shell ein. Dieser Befehl wird im Arbeitsbereichsverzeichnis ausgeführt. Mit anderen Worten, es wird in dem Verzeichnis ausgeführt, in dem sich die Gem-Datei befindet. Klicken Sie auf Speichern, wenn Sie fertig sind.
Führen Sie dann den Build aus.
Ah, die Build-Geschichte wurde rot. Was war die Ursache?
Klicken Sie auf ● </ font> # 2, um die Konsolenausgabe zu öffnen.
Unten sehen Sie das folgende Fehlerprotokoll.
Dies bedeutet, dass Sie eine Bundle-Installation benötigen. Es ist ein erwartetes Verhalten, also habe ich es gewagt, einen Fehler zu machen.
Kehren Sie also zu den Einstellungen zurück und fügen Sie die Bundle-Installation hinzu.
Speichern und Build erneut ausführen
Ich bekomme wieder einen Fehler. Klicken Sie auf ● </ font> # 3, um die Konsolenausgabe zu öffnen.
Die Ruby-Version ist 2.6.3, aber die Gemfile sagt, dass es 2.5.1 ist, also bin ich wütend, dass ich die Installation nicht bündeln kann.
Ich denke, dies ist der Teil, in dem ein solcher Fehler je nach Person auftreten kann oder nicht. Möglicherweise werden auch andere Fehler angezeigt. Schließlich ist die Umgebung je nach PC sehr unterschiedlich.
Es ist eine schlechte Idee, rbenv zu installieren oder Homebrew hier zu installieren. Ich bin süchtig nach dem Schlamm. Ich war süchtig danach.
Aufgrund verschiedener Untersuchungen scheint die Umgebungsvariable PATH beim Ausführen des Jenkins-Builds überschrieben zu werden.
Die Umgebungsvariablen für Jenkins sind so konzipiert, dass sie verwendet werden können. Daher ist es unwahrscheinlich, dass dies geschieht.
Machen wir es also so, dass die Umgebungsvariable PATH nach dem Ausführen des Builds mit dem PATH des lokalen PCs überschrieben wird.
Führen Sie den folgenden Befehl auf dem Mac-Terminal aus, um die Umgebungsvariable PATH zu überprüfen. Dieser Befehl ist ein Befehl zum Abrufen einer Liste aller Umgebungsvariablen mit dem Befehl printenv, zum Verbinden mit | basierend auf dem Ergebnis und zum Anzeigen nur der Zeilen, die PATH enthalten, mit dem Befehl grep.
printenv | grep PATH
Anschließend wird der Wert der Umgebungsvariablen PATH angezeigt.
Dies ist von Person zu Person unterschiedlich, aber Jenkins muss diesen Pfad zurückgeben.
Schreiben Sie daher wie folgt um.
export PATH="Fügen Sie den Inhalt des zuvor kopierten Pfads ein"
bundle exec rspec
bundle exec rubocop
In meinem Fall sieht es so aus: Bitte lesen Sie den PFAD, da er von Person zu Person unterschiedlich ist.
Speichern Sie nun und klicken Sie erneut auf Build ausführen.
Der Build war erfolgreich!
Öffnen Sie die Konsolenausgabe von ● </ font> # 4 und sehen Sie sich das Protokoll an.
Zunächst können Sie sehen, dass das Bundle-Installationsprotokoll angezeigt wird.
Als nächstes können Sie sehen, dass das Bundle exec rspec protokolliert wird.
Schließlich können Sie sehen, dass das Bundle exec rspec protokolliert ist.
Sie können jetzt einen Job erstellen, der Ihre Rails-Anwendung automatisch testet, indem Sie einen Build ausführen.
Hier "Ein Shell-Skript zum Verzweigen, ob ● </ font> oder ● </ font> verwendet werden soll, abhängig vom Ausführungsergebnis von rubocop oder rspec. Sie haben sich vielleicht gefragt: "Ist es nicht notwendig, es zu erstellen?"
Zusammenfassend ist es nicht notwendig. Die Befehle bundle exec rspec und bundle exec rubocop geben im Fehlerfall einen Fehlercode zurück, und Jenkins überprüft den Fehlercode und entweder ● </ font> oder <font Es entscheidet, ob color = "red"> ● </ font> verwendet wird. Das ist praktisch!
Wenn Sie Shell-Skripte, Shells, Befehle wie grep und printenv sowie die Bedeutung von Umgebungsvariablen nicht verstehen, verfügen Sie nicht über Linux-Kenntnisse. Lesen Sie daher die folgenden Bücher. ~~ Ich habe auch ein erfrischendes Linux, also denke ich darüber nach, dieses Buch zu kaufen und zu studieren. ~~ https://www.amazon.co.jp/dp/B072K1NH76/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1
Das ist alles für diese Zeit.
Sie können einen Webhook verwenden, um in den Themenzweig eines Remote-Repositorys zu wechseln und einen automatisierten Test auszuführen. Ich möchte dies jedoch an einem anderen Tag vorstellen.
Achtung! Selbst wenn Sie die Prozedur so kopieren, wie sie ist, kann sie hier nicht automatisch bereitgestellt werden. Weil ich den master.key für die Rails-Anwendung besitze. Außerdem ist meine persönliche App bereits so erstellt, dass sie mit einem einzigen Befehl mit Capistrano in der Produktionsumgebung bereitgestellt werden kann. Die Methode wird nicht beschrieben. Es ist schwierig, aber ich werde Ihnen unten zeigen, wie Sie die Produktionsumgebung erstellen. https://drive.google.com/drive/folders/14F4AmgnK0n022uYLatlQbvuPIGLGLFgt
Ich werde Ihnen nur zeigen, wie es geht. Mit Jenkins ist das ganz einfach.
Klicken Sie auf Neuen Job erstellen.
Setzen Sie den Jobnamen auf "stuctive_auto_deploy" und den Jobtyp auf Freestyle Project und klicken Sie auf OK.
Stellen Sie die Quellcodeverwaltung auf Git und die Repository-URL auf https://github.com/EL93019205/stuctive.git (meine persönliche App) ein.
Wählen Sie unter "Build-Prozedur für Build hinzufügen" die Option "Shell ausführen" aus und lassen Sie das Shell-Skript folgendermaßen aussehen:
Ich mache drei Dinge. -Overwrite Jenkins PATH mit lokalem PC PATH (wie beim automatischen Test) ・ Kopieren Sie master.key von master.key in den Arbeitsbereich und rufen Sie es ab
Klicken Sie auf Speichern und dann auf Build ausführen.
Nach dem Ausführen des Builds lautet der Build-Verlauf ● </ font> # 1.
Klicken Sie auf ● </ font> # 1 und klicken Sie auf Konsolenausgabe, um zu bestätigen, dass das Protokoll für die automatische Bereitstellung angezeigt wird.
Sie können jetzt Rails-Anwendungen in Jenkins automatisch bereitstellen, indem Sie einen Build ausführen.
Vielleicht können Sie einen Webhook verwenden, um die automatische Bereitstellung auszuführen, wenn der Hauptzweig des Remote-Repositorys aktualisiert wird, aber ich studiere das noch, daher möchte ich ihn an einem anderen Tag vorstellen.
Wenn Sie etwas schwer zu verstehen finden, lassen Sie es bitte in den Kommentaren. Vielen Dank für das Lesen bis zum Ende.
Recommended Posts