spellcheck 12

This commit is contained in:
2020-03-21 12:09:22 +01:00
parent 3b08a3e2a9
commit 0b462e3b37
2 changed files with 83 additions and 77 deletions

View File

@@ -42,12 +42,12 @@
\chapter{CI/CD Dokumentation}
\section{CI/CD Dokumentation}\label{cicd-dokumentation}}
Dies ist die Dokumentation für die CI/CD Pipeline von dem \textit{<hier Java Webservice Name einsetzen>}
Dokumentation für die CI/CD Pipeline von dem \textit{<hier Java Webservice Name einsetzen>}
\hypertarget{was-wird-automatisiert}{%
\subsection{Was wird Automatisiert ?}\label{was-wird-automatisiert}}
\subsection{Was wird automatisiert ?}\label{was-wird-automatisiert}}
Durch das CI/CD System werden folgende Prozesse Automatisiert
Durch das CI/CD System werden folgende Prozesse automatisiert
durchgeführt :
\begin{itemize}
@@ -68,7 +68,7 @@ durchgeführt :
\begin{itemize}
\tightlist
\item
Modul-Test mit angebundenen externen Test Datenbank
Modul-Test mit angebundener externen Testdatenbank
\item
Code-Coverage Report
\end{itemize}
@@ -86,7 +86,7 @@ durchgeführt :
Analyse des Modul-Test Ergebnisses
\end{itemize}
\item
\textbf{Package}: Cloudgerechtes packaging der Software
\textbf{Package}: Cloudgerechtes Packaging der Software
\begin{itemize}
\tightlist
@@ -173,7 +173,7 @@ Hier werden die verschiedenen Parameter aufgelistet, die die CI/CD Pipeline beei
Jenkins X erhält verschiedene Inputs, Trigger und Signale durch einen
Webhook-Server namens \emph{Lighthouse}. An ihn werden
Eventbenachichtigungen durch GitLab gesendet um anschließend ein
Eventbenachichtigungen durch GitLab gesendet, um anschließend einen
\textbf{CI-Run} zu starten.
Dabei wird ein \textbf{CI-Run} durch folgende Trigger und Konditionen
@@ -182,15 +182,15 @@ gestartet:
\begin{itemize}
\tightlist
\item
Push auf den \textbf{master} branch auf GitLab
Push auf den \textbf{master} Branch auf GitLab
\item
Push auf einen branch mit offenen \emph{Merge Request}
Push auf einen Branch mit offenen \emph{Merge Request}
\item
Ausführen des Befehlt \texttt{jx\ start\ pipeline}
\end{itemize}
\hypertarget{inputs-und-kontexte-daten}{%
\subsection{Inputs und Kontexte Daten}\label{inputs-und-kontexte-daten}}
\hypertarget{inputs-und-kontext-daten}{%
\subsection{Inputs und Kontextdaten}\label{inputs-und-kontexte-daten}}
Diese Daten fliesen und beeinflussen den \textbf{CI-Build}:
@@ -199,11 +199,11 @@ Diese Daten fliesen und beeinflussen den \textbf{CI-Build}:
\item
Source-Code
\item
Branch von den die Pipeline getriggert wurde
Branch, von dem die Pipeline getriggert wurde
\item
User, der die Pipeline ausgelöst hat.
User, der die Pipeline ausgelöst hat
\item
Offene Mergerequests
Offene Merge Requests
\item
Prow-Konfiguration
\item
@@ -214,7 +214,7 @@ Diese Daten fliesen und beeinflussen den \textbf{CI-Build}:
\section{Pipeline Definitionen}
Es existieren zwei verschiedene Pipelines die durch die Trigger
Es existieren zwei verschiedene Pipelines, die durch die Trigger
ausgelöst werden können:
\begin{itemize}
@@ -228,14 +228,14 @@ ausgelöst werden können:
\hypertarget{release}{%
\subsection{Release}\label{release}}
Diese Pipeline kompeliert, testet, analysiert, verpackt und bereitet die
Diese Pipeline kompiliert, testet, analysiert, verpackt und bereitet die
Software zum Deployment vor.
Sie deployed jedoch die Anwendung nicht, sondern erstellt/modifiziert
lediglich verschiedene Umgebungskonfigurationen, bei denen das
automatische Deployment vorgesehen ist.
\textbf{Trigger}: Push oder Merge auf den \textbf{master} Branch.
\textbf{Trigger}: Push oder Merge auf den \textbf{Masterbranch}.
\hypertarget{stage-setup-buildpack-maven}{%
\subsubsection{Stage: Setup (Buildpack
@@ -248,72 +248,76 @@ Befehle:
\begin{itemize}
\tightlist
\item
\texttt{echo\ \textbackslash{}\$(jx-release-version)\ \textgreater{}\ VERSION}
Schreiben der neuen Software Version in eine Temporäre
\texttt{VERSION} Datei um diese in späteren Schritten wieder abrufen
zu können
\texttt{echo\ \textbackslash{}\$(jx-release-version)\ \textgreater{}\ VERSION}:
Schreiben der neuen Software Version in eine temporäre
\texttt{VERSION} - Datei, um diese in späteren Schritten wieder abrufen
zu können.
\item
\texttt{mvn\ versions:set\ -DnewVersion=\textbackslash{}\$(cat\ VERSION)}
Setzen der Software Version in Maven um die neuen Software-Artefakte
direkt mit richtigen namen und Tags zu versehen.
\texttt{mvn\ versions:set\ -DnewVersion=\textbackslash{}\$(cat\ VERSION)}:
Setzen der Softwareversion in Maven, um die neuen Software-Artefakte
direkt mit richtigen Namen und Tags zu versehen.
\item
\texttt{jx\ step\ tag\ -\/-version\ \textbackslash{}\$(cat\ VERSION)}
Setzen der Software Version in Jenkins X und in Git als Tag.
\texttt{jx\ step\ tag\ -\/-version\ \textbackslash{}\$(cat\ VERSION)}:
Setzen der Softwareversion in Jenkins X und in Git als Tag.
\end{itemize}
\hypertarget{stage-build-buildpack-maven}{%
\subsubsection{Stage: Build (Buildpack
Maven)}\label{stage-build-buildpack-maven}}
In dieser Stage werden alle zum Build dazugehörigen komponenten und
Tools ausgeführt. Bei einigen befehlen werden mehrere Tools und
Komponenten gleichzeitig ausgeführt um den Buildprozess erfolgreich
In dieser Stage werden alle zum Build gehörigen Komponenten und
Tools ausgeführt. Bei einigen Befehlen werden mehrere Tools und
Komponenten gleichzeitig ausgeführt, um den Buildprozess erfolgreich
abzuschließen.
\textbf{Befehle}:
\begin{itemize}
\item
\texttt{mvn\ clean\ deploy} Durch diesen Befehl wird die eigentliche
\texttt{mvn\ clean\ deploy}: Durch diesen Befehl wird die eigentliche
Software gebaut. Der Bauprozess in Maven ist in verschiedene Phasen
aufgeteilt, die in einer festen Reinfolge abgearbeitet werden. In
jedem dieser Phasen wird ein anderes Tool/Plugin/Komponente
jeder dieser Phasen wird ein anderes Tool/Plugin/Komponente
aufgerufen. Nach dem Abschluss jeder Phase wird überprüft, ob die
Phase erfolgreich abgeschlossen wurde. \textbf{Phasen}:
Phase erfolgreich abgeschlossen wurde.
~
\textbf{Phasen}:
\begin{itemize}
\item
\texttt{clean} Bereinigt den Projekt Ordner von überresten eines
\texttt{clean}: Bereinigt den Projekt Ordner von überresten eines
vorherigen buildprozesses.
\item
\texttt{generate-sources} Erstellt mithilfe von
\texttt{generate-sources}: Erstellt mithilfe von
\textbf{openapi-generator.tech} Serverboilercode und API
Schnittstellendefinitionen aus einer \emph{OpenAPI-Definitions
Datei}. Diese liegt unter \texttt{src/main/resources/api.yaml} und
ist in \emph{OpenAPI v3} formatiert.
Der generierte Code ist unter
\texttt{target/generated-sources/openapi} abgelegt und wird
\texttt{target/generated-sources/openapi}: abgelegt und wird
automatisch in den \emph{Classpath} eingebunden.
\item
\texttt{compile} Erhebt alle Dependencys und stellt diese zu den
entsprechenden Phasen des Buildvorgangs zuverfügung. Anschließend
werden alle Sourcen die sich in dem Sourcepath befinden kompeliert.
\texttt{compile}: Erhebt alle Dependencys und stellt diese zu den
entsprechenden Phasen des Buildvorgangs zu Verfügung. Anschließend
werden alle Sourcen, die sich in dem Sourcepath befinden kompiliert.
\item
\texttt{test} Führt UnitTests mithilfe von \emph{JUnit 5} aus.
\emph{JUnit} scannt nach Aktivierten und Relevanten Tests und führt
diese aus. Die Ergebnisse werden in Form eines XML-Reports in den
\texttt{test}: Führt UnitTests mithilfe von \emph{JUnit 5} aus.
\emph{JUnit} scannt nach aktivierten und relevanten Tests und führt
diese aus. Die Ergebnisse werden in Form eines XML-Reports im
\texttt{target} Ordner abgelegt. Bei der Ausführung der Tests wird
zusätzlich die Code Coverage durch \emph{JaCoCo} erhoben und
ebenfals ein Report unter \texttt{target} abgelegt.
\item
\texttt{package} Erzeugt eine ausführbare \texttt{.jar} Datei mit
allen benötigten Dependencys um diese zu Containerisieren.
\texttt{package}: Erzeugt eine ausführbare \texttt{.jar} Datei mit
allen benötigten Dependencys, um diese zu containerisieren.
\end{itemize}
\item
\texttt{skaffold\ build\ -f\ skaffold.yaml} Wird durch Jenkins X zu
\texttt{skaffold\ build\ -f\ skaffold.yaml}: Wird durch Jenkins X zu
Kaniko build umformatiert. Baut Container Image mit Parameter aus
Jenkins X und veröffentlich diese in einem Container Registry
Jenkins X und veröffentlicht diese in einem Container Registry
\item
Sonarqube Analyse (Custom addition)
@@ -331,7 +335,7 @@ abzuschließen.
\end{Highlighting}
Analysiert Projekt mit Hilfe von SonarQube und bricht die Pipeline ab
Analysiert Projekt mit Hilfe von SonarQube und bricht die Pipeline ab,
wenn Qualitätsprobleme gefunden wurden.
\end{itemize}
@@ -341,7 +345,7 @@ Maven)}\label{stage-promote-buildpack-maven}}
In dieser Stage werden die erzeugten Artefakte in die zugehörigen
Artefaktarchivierungssysteme hochgeladen und die verschiedenen
Umgebungskonfigurationen modifiziert um den \emph{CD-Prozess} zu
Umgebungskonfigurationen modifiziert, um den \emph{CD-Prozess} zu
starten.
\textbf{Befehle:}
@@ -349,26 +353,26 @@ starten.
\begin{itemize}
\tightlist
\item
\texttt{jx\ step\ changelog\ -\/-version\ v\textbackslash{}\$(cat\ ../../VERSION)}
\texttt{jx\ step\ changelog\ -\/-version\ v\textbackslash{}\$(cat\ ../../VERSION)}:
Fügt dem Tag und dem Release in GitLab Changelogs aus den
Commitnachichten hinzu.
\item
\texttt{jx\ step\ helm\ release} Veröffentlich das Helmchat aus dem
\texttt{jx\ step\ helm\ release}: Veröffentlich das Helmchat aus dem
\texttt{charts} Ordner unter einer neuen Version im Chartmuseum.
\item
\texttt{jx\ promote\ -b\ -\/-all-auto\ -\/-timeout\ 1h\ -\/-version\ \textbackslash{}\$(cat\ ../../VERSION)}
Modifiziert oder Erstellt die Umgebunskonfigurationen bei denen in
\texttt{jx\ promote\ -b\ -\/-all-auto\ -\/-timeout\ 1h\ -\/-version\ \textbackslash{}\$(cat\ ../../VERSION)}:
modifiziert oder erstellt die Umgebunskonfigurationen, bei denen in
Jenkins X \emph{Autodeploy} aktiviert wurde.
\end{itemize}
\hypertarget{preview}{%
\subsection{Preview}\label{preview}}
Diese Pipeline kompeliert, testet, analysiert, verpackt und bereitet die
Software zum deployment in eine temporäre Previewenvirgonment.
Diese Pipeline kompiliert, testet, analysiert, verpackt und bereitet die
Software zum Deployment in eine temporäre Previewenvironment.
Diese Pipeline ist nicht zum Bau einer Realease Version gedacht und
bereitet die Software nur für ein themporäres Preview vor.
Diese Pipeline ist nicht zum Bau einer Releaseversion gedacht und
bereitet die Software nur für ein temporäres Preview vor.
\textbf{Trigger}: Push oder Merge auf einen Branch, der Quelle eines
offenen \emph{Merge-Request} ist.
@@ -377,16 +381,18 @@ offenen \emph{Merge-Request} ist.
\subsubsection{Stage: Build (Buildpack
Maven)}\label{stage-build-buildpack-maven-1}}
In dieser Stage werden alle zum Build dazugehörigen komponenten und
Tools ausgeführt. Bei einigen befehlen werden mehrere Tools und
Komponenten gleichzeitig ausgeführt um den Buildprozess erfolgreich
In dieser Stage werden alle zum Build gehörigen Komponenten und
Tools ausgeführt. Bei einigen Befehlen werden mehrere Tools und
Komponenten gleichzeitig ausgeführt, um den Buildprozess erfolgreich
abzuschließen.
~
\textbf{Befehle}:
\begin{itemize}
\item
\texttt{mvn\ clean\ install} Durch diesen Befehl wird die eigentliche
\texttt{mvn\ clean\ install}: Durch diesen Befehl wird die eigentliche
Software gebaut. Der Bauprozess in Maven ist in verschiedene Phasen
aufgeteilt, die in einer festen Reinfolge abgearbeitet werden. In
jedem dieser Phasen wird ein anderes Tool/Plugin/Komponente
@@ -395,10 +401,10 @@ abzuschließen.
\begin{itemize}
\item
\texttt{clean} Bereinigt den Projekt Ordner von überresten eines
vorherigen buildprozesses.
\texttt{clean}: Bereinigt den Projekt Ordner von Überresten eines
vorherigen Buildprozesses.
\item
\texttt{generate-sources} Erstellt mithilfe von
\texttt{generate-sources}: Erstellt mithilfe von
\textbf{openapi-generator.tech} Serverboilercode und API
Schnittstellendefinitionen aus einer \emph{OpenAPI-Definitions
Datei}. Diese liegt unter \texttt{src/main/resources/api.yaml} und
@@ -408,22 +414,22 @@ abzuschließen.
\texttt{target/generated-sources/openapi} abgelegt und wird
automatisch in den \emph{Classpath} eingebunden.
\item
\texttt{compile} Erhebt alle Dependencys und stellt diese zu den
entsprechenden Phasen des Buildvorgangs zuverfügung. Anschließend
werden alle Sourcen die sich in dem Sourcepath befinden kompeliert.
\texttt{compile}: Erhebt alle Dependencys und stellt diese zu den
entsprechenden Phasen des Buildvorgangs zur Verfügung. Anschließend
werden alle Sourcen, welche sich in dem Sourcepath befinden kompiliert.
\item
\texttt{test} Führt UnitTests mithilfe von \emph{JUnit 5} aus.
\emph{JUnit} scannt nach Aktivierten und Relevanten Tests und führt
diese aus. Die Ergebnisse werden in Form eines XML-Reports in den
\texttt{test}: Führt UnitTests mithilfe von \emph{JUnit 5} aus.
\emph{JUnit} scannt nach aktivierten und relevanten Tests und führt
diese aus. Die Ergebnisse werden in Form eines XML-Reports im
\texttt{target} Ordner abgelegt. Bei der Ausführung der Tests wird
zusätzlich die Code Coverage durch \emph{JaCoCo} erhoben und
ebenfals ein Report unter \texttt{target} abgelegt.
\item
\texttt{package} Erzeugt eine ausführbare \texttt{.jar} Datei mit
allen benötigten Dependencys um diese zu Containerisieren.
\texttt{package}: Erzeugt eine ausführbare \texttt{.jar} Datei mit
allen benötigten Dependencys, um diese zu containerisieren.
\end{itemize}
\item
\texttt{skaffold\ build\ -f\ skaffold.yaml} Wird durch Jenkins X zu
\texttt{skaffold\ build\ -f\ skaffold.yaml}: Wird durch Jenkins X zu
Kaniko build umformatiert. Baut Container Image mit Parameter aus
Jenkins X und veröffentlich diese in einem Container Registry
\item
@@ -452,22 +458,24 @@ Maven)}\label{stage-promote-buildpack-maven-1}}
In dieser Stage werden die erzeugten Artefakte in die zugehörigen
Artefaktarchivierungssysteme hochgeladen und eine temporäre
Previewumgebung erstellt um die Anwendung kurzzeitig zu testen.
Previewumgebung erstellt, um die Anwendung kurzzeitig zu testen.
~
\textbf{Befehle:}
\begin{itemize}
\tightlist
\item
\texttt{jx\ step\ changelog\ -\/-version\ v\textbackslash{}\$(cat\ ../../VERSION)}
\texttt{jx\ step\ changelog\ -\/-version\ v\textbackslash{}\$(cat\ ../../VERSION)}:
Fügt dem Tag und dem Release in GitLab Changelogs aus den
Commitnachichten hinzu.
\item
\texttt{jx\ step\ helm\ release} Veröffentlich das Helmchat aus dem
\texttt{jx\ step\ helm\ release}: Veröffentlich das Helmchat aus dem
\texttt{charts} Ordner unter einer neuen Version im Chartmuseum.
\item
\texttt{jx\ promote\ -b\ -\/-all-auto\ -\/-timeout\ 1h\ -\/-version\ \textbackslash{}\$(cat\ ../../VERSION)}
Modifiziert oder Erstellt die Umgebunskonfigurationen bei denen in
\texttt{jx\ promote\ -b\ -\/-all-auto\ -\/-timeout\ 1h\ -\/-version\ \textbackslash{}\$(cat\ ../../VERSION)}:
Modifiziert oder erstellt die Umgebunskonfigurationen bei denen in
Jenkins X \emph{Autodeploy} aktiviert wurde.
\end{itemize}