474 lines
17 KiB
TeX
474 lines
17 KiB
TeX
\newcommand{\VerbBar}{|}
|
|
\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
|
|
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
|
|
% Add ',fontsize=\small' for more characters per line
|
|
\newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
|
|
\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
|
|
\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{#1}}
|
|
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
|
|
\newcommand{\BuiltInTok}[1]{#1}
|
|
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
|
|
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{#1}}}
|
|
\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
|
|
\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{#1}}
|
|
\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
|
|
\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{#1}}
|
|
\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
|
|
\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{#1}}}
|
|
\newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
|
|
\newcommand{\ExtensionTok}[1]{#1}
|
|
\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
|
|
\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{#1}}
|
|
\newcommand{\ImportTok}[1]{#1}
|
|
\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
|
|
\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
|
|
\newcommand{\NormalTok}[1]{#1}
|
|
\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
|
|
\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
|
|
\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{#1}}
|
|
\newcommand{\RegionMarkerTok}[1]{#1}
|
|
\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
|
|
\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{#1}}
|
|
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
|
|
\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
|
|
\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
|
|
\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
|
|
\setlength{\emergencystretch}{3em} % prevent overfull lines
|
|
\providecommand{\tightlist}{%
|
|
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
|
|
%\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
|
|
|
|
\hypertarget{cicd-dokumentation}{%
|
|
\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>}
|
|
|
|
\hypertarget{was-wird-automatisiert}{%
|
|
\subsection{Was wird Automatisiert ?}\label{was-wird-automatisiert}}
|
|
|
|
Durch das CI/CD System werden folgende Prozesse Automatisiert
|
|
durchgeführt :
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
\textbf{Build}: Build Prozess der Software
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
Automatische Generierung von API-Server Boilercode
|
|
\item
|
|
Kompilierung und Verpacken der Software in eine **.jar*
|
|
\end{itemize}
|
|
\item
|
|
\textbf{Test}: Automatisierte Tests
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
Modul-Test mit angebundenen externen Test Datenbank
|
|
\item
|
|
Code-Coverage Report
|
|
\end{itemize}
|
|
\item
|
|
\textbf{Analyse}: Analyse von Sourcecode und Test Reports
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
Statische Code Analyse durch SonarQube mit Qualitätsprofil
|
|
\textbf{Sonar-Way}
|
|
\item
|
|
Analyse des Code-Coverage Reports
|
|
\item
|
|
Analyse des Modul-Test Ergebnisses
|
|
\end{itemize}
|
|
\item
|
|
\textbf{Package}: Cloudgerechtes packaging der Software
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
Containerisierung in einem Container-Image für die Cloudnutzung
|
|
\item
|
|
Linting des Helm-Charts für Kubernetes
|
|
\end{itemize}
|
|
\item
|
|
\textbf{Deploy}: Deployment der Software
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
Deployment auf einem Kubernetes Cluster durch Helm
|
|
\end{itemize}
|
|
\end{itemize}
|
|
|
|
\hypertarget{welche-komponententools-werden-verwendet}{%
|
|
\subsection{Welche Komponenten/Tools werden
|
|
verwendet}\label{welche-komponententools-werden-verwendet}}
|
|
|
|
Folgende Komponenten/Tools werden im CI/CD Prozess verwendet:
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
\textbf{Build}
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
OpenAPI Codegenerator
|
|
\item
|
|
Maven
|
|
\end{itemize}
|
|
\item
|
|
\textbf{Test}
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
JUnit-5
|
|
\item
|
|
JaCoCo
|
|
\end{itemize}
|
|
\item
|
|
\textbf{Analyse}
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
SonarQube 7
|
|
\end{itemize}
|
|
\item
|
|
\textbf{Package}
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
Kaniko
|
|
\item
|
|
Helm
|
|
\end{itemize}
|
|
\item
|
|
\textbf{Deploy}
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
Helm
|
|
\item
|
|
Kubernetes
|
|
\end{itemize}
|
|
\end{itemize}
|
|
|
|
\textbf{CI/CD Engine}: Serverless Jenkins X
|
|
|
|
\hypertarget{cicd-in-outputs}{%
|
|
\section{CI/CD In-/Outputs}\label{cicd-in-outputs}}
|
|
Hier werden die verschiedenen Parameter aufgelistet, die die CI/CD Pipeline beeinflussen könnten.
|
|
\hypertarget{trigger}{%
|
|
\subsection{Trigger}\label{trigger}}
|
|
|
|
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
|
|
\textbf{CI-Run} zu starten.
|
|
|
|
Dabei wird ein \textbf{CI-Run} durch folgende Trigger und Konditionen
|
|
gestartet:
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
Push auf den \textbf{master} branch auf GitLab
|
|
\item
|
|
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}}
|
|
|
|
Diese Daten fliesen und beeinflussen den \textbf{CI-Build}:
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
Source-Code
|
|
\item
|
|
Branch von den die Pipeline getriggert wurde
|
|
\item
|
|
User, der die Pipeline ausgelöst hat.
|
|
\item
|
|
Offene Mergerequests
|
|
\item
|
|
Prow-Konfiguration
|
|
\item
|
|
Jenkins X Projekt Konfiguration
|
|
\item
|
|
HMAC Secret des Webhookrequestes \# Pipeline Definitionen
|
|
\end{itemize}
|
|
|
|
|
|
\section{Pipeline Definitionen}
|
|
Es existieren zwei verschiedene Pipelines die durch die Trigger
|
|
ausgelöst werden können:
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
Release
|
|
\item
|
|
Preview
|
|
\end{itemize}
|
|
|
|
\hypertarget{release}{%
|
|
\subsection{Release}\label{release}}
|
|
|
|
Diese Pipeline kompeliert, 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.
|
|
|
|
\hypertarget{stage-setup-buildpack-maven}{%
|
|
\subsubsection{Stage: Setup (Buildpack
|
|
Maven)}\label{stage-setup-buildpack-maven}}
|
|
|
|
In dieser Stage wird der Buildprozess vorbereitet und eingeleitet.
|
|
|
|
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
|
|
\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.
|
|
\item
|
|
\texttt{jx\ step\ tag\ -\/-version\ \textbackslash{}\$(cat\ VERSION)}
|
|
Setzen der Software Version 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
|
|
abzuschließen.
|
|
|
|
\textbf{Befehle}:
|
|
|
|
\begin{itemize}
|
|
\item
|
|
\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
|
|
aufgerufen. Nach dem Abschluss jeder Phase wird überprüft, ob die
|
|
Phase erfolgreich abgeschlossen wurde. \textbf{Phasen}:
|
|
|
|
\begin{itemize}
|
|
\item
|
|
\texttt{clean} Bereinigt den Projekt Ordner von überresten eines
|
|
vorherigen buildprozesses.
|
|
\item
|
|
\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
|
|
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.
|
|
\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{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.
|
|
\end{itemize}
|
|
\item
|
|
\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
|
|
Sonarqube Analyse (Custom addition)
|
|
|
|
|
|
\begin{Highlighting}[]
|
|
\ExtensionTok{mvn}\NormalTok{ {-}{-}batch{-}mode sonar:sonar \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.projectKey=}\OperatorTok{\textless{}}\NormalTok{sonarqube projekt key}\OperatorTok{\textgreater{}}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.host.url=}\OperatorTok{\textless{}}\NormalTok{sonarqube host}\OperatorTok{\textgreater{}}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.login=}\OperatorTok{\textless{}}\NormalTok{sonarqube login key}\OperatorTok{\textgreater{}}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.gitlab.commit\_sha=}\VariableTok{$(}\FunctionTok{git}\NormalTok{ rev{-}parse HEAD}\VariableTok{)}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.gitlab.ref\_name=}\VariableTok{$(}\FunctionTok{git}\NormalTok{ rev{-}parse {-}{-}abbrev{-}ref HEAD}\VariableTok{)}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.gitlab.project\_id=}\OperatorTok{\textless{}}\NormalTok{project id}\OperatorTok{\textgreater{}}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.branch.name=}\VariableTok{$BRANCH\_NAME}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.gitlab.user\_token=}\OperatorTok{\textless{}}\NormalTok{gitlab access toekn}\OperatorTok{\textgreater{}}\NormalTok{\textbackslash{}}
|
|
\end{Highlighting}
|
|
|
|
|
|
Analysiert Projekt mit Hilfe von SonarQube und bricht die Pipeline ab
|
|
wenn Qualitätsprobleme gefunden wurden.
|
|
\end{itemize}
|
|
|
|
\hypertarget{stage-promote-buildpack-maven}{%
|
|
\subsubsection{Stage: Promote (Buildpack
|
|
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
|
|
starten.
|
|
|
|
\textbf{Befehle:}
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
\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{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
|
|
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 ist nicht zum Bau einer Realease Version gedacht und
|
|
bereitet die Software nur für ein themporäres Preview vor.
|
|
|
|
\textbf{Trigger}: Push oder Merge auf einen Branch, der Quelle eines
|
|
offenen \emph{Merge-Request} ist.
|
|
|
|
\hypertarget{stage-build-buildpack-maven-1}{%
|
|
\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
|
|
abzuschließen.
|
|
|
|
\textbf{Befehle}:
|
|
|
|
\begin{itemize}
|
|
\item
|
|
\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
|
|
aufgerufen. Nach dem Abschluss jeder Phase wird überprüft, ob die
|
|
Phase erfolgreich abgeschlossen wurde. \textbf{Phasen}:
|
|
|
|
\begin{itemize}
|
|
\item
|
|
\texttt{clean} Bereinigt den Projekt Ordner von überresten eines
|
|
vorherigen buildprozesses.
|
|
\item
|
|
\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
|
|
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.
|
|
\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{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.
|
|
\end{itemize}
|
|
\item
|
|
\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
|
|
Sonarqube Analyse (Custom addition)
|
|
|
|
|
|
\begin{Highlighting}[]
|
|
\ExtensionTok{mvn}\NormalTok{ {-}{-}batch{-}mode sonar:sonar \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.projectKey=}\OperatorTok{\textless{}}\NormalTok{sonarqube projekt key}\OperatorTok{\textgreater{}}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.host.url=}\OperatorTok{\textless{}}\NormalTok{sonarqube host}\OperatorTok{\textgreater{}}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.login=}\OperatorTok{\textless{}}\NormalTok{sonarqube login key}\OperatorTok{\textgreater{}}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.gitlab.commit\_sha=}\VariableTok{$(}\BuiltInTok{echo} \VariableTok{$PULL\_REFS} \KeywordTok{|} \FunctionTok{cut}\NormalTok{ {-}d}\StringTok{\textquotesingle{}:\textquotesingle{}}\NormalTok{ {-}f3}\VariableTok{)}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.gitlab.ref\_name=}\VariableTok{$(}\FunctionTok{git}\NormalTok{ rev{-}parse {-}{-}abbrev{-}ref HEAD}\VariableTok{)}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.gitlab.project\_id=}\OperatorTok{\textless{}}\NormalTok{project id}\OperatorTok{\textgreater{}}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.branch.name=}\VariableTok{$BRANCH\_NAME}\NormalTok{ \textbackslash{}}
|
|
\NormalTok{ {-}Dsonar.gitlab.user\_token=}\OperatorTok{\textless{}}\NormalTok{gitlab access toekn}\OperatorTok{\textgreater{}}\NormalTok{\textbackslash{}}
|
|
\end{Highlighting}
|
|
|
|
|
|
Analysiert Projekt mit Hilfe von SonarQube.
|
|
\end{itemize}
|
|
|
|
\hypertarget{stage-promote-buildpack-maven-1}{%
|
|
\subsubsection{Stage: Promote (Buildpack
|
|
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.
|
|
|
|
\textbf{Befehle:}
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
\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{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
|
|
Jenkins X \emph{Autodeploy} aktiviert wurde.
|
|
\end{itemize}
|
|
|