This commit is contained in:
Thomas Klaehn 2016-04-28 16:05:56 +02:00
parent 64bda9fe50
commit 417a6966c3
3 changed files with 47 additions and 121 deletions

View File

@ -24,6 +24,7 @@ citecolor = black]{hyperref}%
\usepackage{scrpage2}%
\usepackage{multido}
\usepackage{pstricks}
\usepackage{colortbl}
\newcommand*\euler{\mathrm{e}}
\input{title.tex}
@ -41,6 +42,8 @@ citecolor = black]{hyperref}%
\tableofcontents
\newpage
\listoffigures
\newpage
\lstlistoflistings
\input{config/headfoot.tex}
\newpage
\input{content.tex}

View File

@ -65,19 +65,24 @@ As continuous integration system the gitlab built in ci-system
\textit{gitlab-ci} is used. Beside the most important task of ci, ensure
constant high code quality, the ci system is used for various tasks:
\begin{itemize}
\item Automated static code analysis (not implemented yet)
\item Automated static code analysis
\item Automated build
\item Automated test (not implemented yet)
\item Internal release deployment
\item External release deployment
\item Automated release note generation (not implemented yet)
\end{itemize}
\subsection{Internal release deployment} \label{sec:ci_int}
For a branch named \texttt{release/...} an internal release is triggered
automatically. The internal release is processing the following steps:\\
For a branch named \texttt{release/...} the creation of a release candidate
is triggered automatically. The internal release is processing the following
steps:\\
\begin{enumerate}
\item Build project variant specific configuration
\item Static code analysis of project variant specific configuration
\item Name the release depending on the release naming convention
\item Deploy the release to the project's internal deploy path
\item Build release notes for the release candidate
\item Deploy the release to the project's release candidate deploy
location
\end{enumerate}
\subsection{External release deployment} \label{sec:ci_ext}
To create an external release the commit to be released must be tagged
@ -85,31 +90,25 @@ using the following naming convention:\\
\texttt{release/<project\_specific\_name>}.\\
The project specific naming convention for Agricola ruby is:\\
\texttt{release/174\_AG*}.\\
\begin{enumerate}
\item Build project variant specific configuration
\item Static code analysis of project variant specific configuration
\item Name the release depending on the release naming convention
\item Build release notes for the release
\item Deploy the release to the project's release deploy location
\end{enumerate}
\subsection{Configuring the build jobs} \label{sec:ci_conf}
The configuration of gitlab-ci is made in the \texttt{.gitlab-ci.yml} file
in the root directory of the project's repository. The certain build stages
are using variables to customize the build. These variables are defined in
the \texttt{variables} section of the config file.\\\\
\begin{tabular}{l l}
variable & meaning\\
PRODUCT\_ID & Id of the product\\
\cellcolor{black}\color{white}variable & \cellcolor{black}\color{white}meaning\\
PRODUCT\_NAME & Short of the product name\\
PRODUCT\_VARIANT & Short of the product variant\\
PROJECT\_VERSION & ??\\
SW\_MAJOR\_INTERNAL & Software major number for internal\\
& releases\\
SW\_MAJOR\_EXTERNAL & Software major number for external\\
& releases\\
SW\_MINOR\_INTERNAL & Software minor number for internal\\
& releases\\
SW\_MINOR\_EXTERNAL & Software minor number for external\\
& releases\\
EXEC\_PATH\_INTERNAL & Location of the built executable for\\
& internal release\\
EXEC\_PATH\_EXTERNAL & Location of the built executable for\\
& external release\\
DEPLOY\_PATH\_INTERNAL & Location to deploy internal releases to\\
DEPLOY\_PATH\_EXTERNAL & Location to deploy external releases to\\\\
SW\_MAJOR & Software major number\\
SW\_MINOR & Software minor number\\\\
\end{tabular}
\newline
In listing \ref{lst:ag_cfg} an example configuration for an Agricola North
@ -117,27 +116,15 @@ America variant release is shown.
\lstsetbash
\begin{lstlisting}[caption=variables configuration, label=lst:ag_cfg]
variables:
PRODUCT_ID: "174"
PRODUCT_NAME: "AG"
PRODUCT_VARIANT: "NA"
PROJECT_VERSION: "10"
SW_MAJOR_INTERNAL: "1"
SW_MAJOR_EXTERNAL: "1"
SW_MINOR_INTERNAL: "1"
SW_MINOR_EXTERNAL: "2"
EXEC_PATH_INTERNAL: "./exec/NAR_release/NAR_release.hex"
EXEC_PATH_EXTERNAL: "./exec/NAR_release_customer/\
NAR_release_customer.hex"
DEPLOY_PATH_INTERNAL: "http://dabsvn01.internal.novero.\
com/svn/0_31X_P0070_agricola/trunk/development/\
software/releases/internal"
DEPLOY_PATH_EXTERNAL: "http://dabsvn01.internal.novero.\
com/svn/0_31X_P0070_agricola/trunk/development/\
software/releases/external"
SW_MAJOR: "1"
SW_MINOR: "2"
\end{lstlisting}
Remember, it is a good idea to change these values before creating the
release branch, creating (and pushing) the branch triggers the build of an
internal release.
\textbf{Remember}, it is a good idea to change these values before creating
the release branch, creating (and pushing) the branch triggers the build of
a release candidate.
\begin{figure}
\begin{center}

View File

@ -2,135 +2,71 @@
\psset{xunit=10mm,yunit=10mm}
\begin{pspicture}(14,16)
% \psgrid
\newcommand{\clr}{black}
% phases
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](0,2)(14,2)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](0,8)(14,8)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](0,14)(14,14)
\rput{0}(1.5,8){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{code freeze}}
}
\psline[linewidth=1pt,linecolor=\clr]{<->}(13.5,2)(13.5,8)
\rput{90}(13.5,5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{implementation phase}}
}
\psline[linewidth=1pt,linecolor=\clr]{<->}(13.5,8)(13.5,14)
\rput{90}(13.5,11){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{release phase}}
}
\newcommand{\clr}{Gray}
\newcommand{\hclr}{RedOrange}
% master
\newcommand{\masterx}{7}
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\masterx,1)(\masterx,15)
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\masterx,2)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\masterx,3)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\masterx,7)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\masterx,8)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\masterx,14)
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\masterx,8)(\masterx,15)
\psline[linewidth=2pt,linecolor=\hclr](\masterx,1)(\masterx,8)
\psset{fillcolor=\hclr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\masterx,2)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\masterx,3)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\masterx,7)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\masterx,8)
\rput(\masterx,0.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{linecolor=\hclr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{master}}
\psframebox{\textcolor{\hclr}{master}}
}
% feature/anti_osc
\renewcommand{\clr}{ForestGreen}
\newcommand{\featurex}{5}
\psline[linewidth=2pt,linecolor=\clr](\masterx,2)(\featurex,3)
\psline[linewidth=2pt,linecolor=\clr](\featurex,3)(\featurex,7)
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\featurex,7)(\masterx,8)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](\featurex,2)(\featurex,8)
\multido{\nA=3+2}{3}{
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\featurex,\nA)
}
\rput(\featurex,1.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{feature/anti\_osc}}
}
% old_branch
\renewcommand{\clr}{Gray}
\newcommand{\xpos}{9}
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\xpos,2)(\masterx,3)
\psline[linewidth=2pt,linecolor=\clr](\xpos,1)(\xpos,2)
% fix/calibration_crc
\renewcommand{\clr}{Maroon}
\newcommand{\fixx}{9}
\psline[linewidth=2pt,linecolor=\clr](\masterx,3)(\fixx,4)
\psline[linewidth=2pt,linecolor=\clr](\fixx,4)(\fixx,6)
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\fixx,6)(\masterx,7)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](\fixx,3)(\fixx,7)
\multido{\nA=4+2}{2}{
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,\nA)
}
\rput(\fixx,2.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{fix/calibration\_crc}}
}
% feature/dynamic_monitoring
\renewcommand{\clr}{RoyalBlue}
\renewcommand{\fixx}{11}
\psline[linewidth=2pt,linecolor=\clr](\masterx,3)(\fixx,4)
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\fixx,4)(\fixx,12)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](\fixx,3)(\fixx,4)
\rput(\fixx,12.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{feature/dyn\_mon}}
}
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,4)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,6)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,8)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,10)
% release/NAR_C0
\renewcommand{\clr}{RedOrange}
\renewcommand{\fixx}{5}
\psline[linewidth=2pt,linecolor=\clr](\masterx,8)(\fixx,9)
\psline[linewidth=2pt,linecolor=\clr](\fixx,9)(\fixx,13)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](\fixx,8)(\fixx,14)
\psline[linewidth=2pt,linecolor=\clr,linestyle=dashed,arrowsize=15pt]{->}(\fixx,13)(\masterx,14)
\psline[linewidth=2pt,linecolor=\hclr](\masterx,8)(\fixx,9)
\psline[linewidth=2pt,linecolor=\hclr](\fixx,9)(\fixx,13)
\psline[linewidth=1pt,linecolor=\hclr,linestyle=dashed](\fixx,8)(\fixx,14)
\rput(\fixx,14.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{linecolor=\hclr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{release/NAR\_C0}}
\psframebox{\textcolor{\hclr}{release/NAR\_C0}}
}
\rput(2.5,13){
\psset{fillcolor=\clr}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{white}{\shortstack{tags/release/\\174\_AG\_NA\_10-01.02}}}
}
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,9)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,11)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,13)
\psset{fillcolor=\hclr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\fixx,9)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\fixx,11)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\fixx,13)
\end{pspicture}