2 Commits

Author SHA1 Message Date
Thomas Klaehn
fce506d77f description of gitlab runner installation 2016-12-13 14:24:54 +01:00
Thomas Klaehn
b9e4cc3aae enable pstricks 2016-12-13 14:23:20 +01:00
5 changed files with 94 additions and 40 deletions

View File

@@ -4,6 +4,8 @@ DEP := \
config/headfoot.tex \ config/headfoot.tex \
config/sourcelst.tex \ config/sourcelst.tex \
content.tex \ content.tex \
gitlab-runner.tex \
title.tex \
Makefile Makefile
all: $(MAIN) all: $(MAIN)

View File

@@ -20,8 +20,11 @@ citecolor = black]{hyperref}%
\usepackage{amsfonts}% \usepackage{amsfonts}%
\usepackage{mathrsfs}% \usepackage{mathrsfs}%
\usepackage{hyperref}% \usepackage{hyperref}%
\usepackage{xcolor}% \usepackage[dvipsnames]{xcolor}%
\usepackage{scrpage2}% \usepackage{scrpage2}%
\usepackage{multido}
\usepackage{pstricks}
\usepackage{colortbl}
\newcommand*\euler{\mathrm{e}} \newcommand*\euler{\mathrm{e}}
\input{title.tex} \input{title.tex}

View File

@@ -1,40 +1,66 @@
\section*{Agricola Release HowTo} \section{Introduction}
\subsection*{Create release branch} Gitlab-ci uses so called runners to execute the build jobs defined in the build
A push event to a \textit{release/...} named branch will create release job file of a repository. A runner is a seperate tool and can be installed on
candidates. These release candidates are deployed to agricola's project svn. any machine. The type of connection is configurable. The intentions of these concept are:\\
(\texttt{http://dabsvn01.internal.novero.com/svn/\ \\
0\_31X\_P0070\_agricola/trunk/development/software/\ \\
releases/release\_candidate/})\\
Checkout the new release branch:
\begin{lstlisting}
git checkout -b release/<release_name>
\end{lstlisting}
Prepare build variables in the \textit{variables} section of the build job
file\\(\texttt{.gitlab-ci.yml} in agricola's root directory).
\begin{lstlisting}
variables:
PRODUCT_NAME: "AG"
PRODUCT_VARIANT: "NA"
# PRODUCT_VARIANT: "EU"
# PRODUCT_VARIANT: "CN"
PROJECT_VERSION: "10"
SW_MAJOR: "1"
SW_MINOR: "2"
\end{lstlisting}
Push the new branch to the gitlab-server:
\begin{lstlisting}
git push --set-upstream origin release/<release_name>
\end{lstlisting}
\subsection*{Create release tag}
A \textit{release/174\_AG...} named tag in the agricola repository at the
gitlab server will create a release and deploys it to the agricola project
svn repository. To create the tag:
\begin{itemize} \begin{itemize}
\item go to agricola's gitlab tags section \\ \item{remove (build) environmental dependency from ci server}
(\texttt{https://novgit05.novero.com/agricola/agricola/tags}) \item{multipe runners to parallize multiple builds}
\item Hit the \textit{+ New tag} button
\item Choose a valid tag name \textit{(release/174\_AG...)}
\item Choose the above created release branch as source for the new tag.
\item Hit the \textit{Create tag} button
\end{itemize} \end{itemize}
The Runner has to be installed on a machine with a proper environment (compiler,
...) installed for the dedicated project it is used for. Figure \ref{fig:gitlab-runner-interaction} illustrates
the interaction of a local workstation, the gitlab(-ci) server and the
gitlab-ci-multi-runner.
\begin{figure}
\begin{center}
\input{gitlab-runner.tex}
\caption{Gitlab-ci - runner interaction}
\label{fig:gitlab-runner-interaction}
\end{center}
\end{figure}
\section{Installation of gitlab-ci-multi-runner}
The Installation of the runner depends on the operating system of the host and
is described here: \hyperlink{https://docs.gitlab.com/runner/install/}{\texttt{https://docs.gitlab.com/runner/install}}
\section{Installation of a dedicated runner}
\subsection{Prerequisites}
To install a dedicated runner prerequisites has to be fullfilled:
\begin{itemize}
\item{Url of gitlab ci coordinator}
\item{Registation token of that server}
\item{Tags - if the build job defines tags to identify runners}
\end{itemize}
These two informations can be gathered at the runners section of the project's
gitlab repository the runner is installed for. That section is accessible using:\texttt{<gitlab-url>/<project-path>/runners}\\
\textbf{Example:}\\
\texttt{https://novgit05.novero.com/agricola/agricola/runners}
\subsection{Register}
Open a shell an type: \texttt{gitlab-ci-multi-runner register}. An interactive
shell opens and requests some inputs (see prequisites).
\lstsetdefault
\begin{lstlisting}
user@dabbld01:~$ sudo gitlab-ci-multi-runner register
Running in system-mode.
Please enter the gitlab-ci coordinator URL
(e.g. https://gitlab.com/):
https://novgit05.novero.com/ci
Please enter the gitlab-ci token for this runner:
<secret-token>
Please enter the gitlab-ci description for this runner:
[dabbld01]:
my-runner
Please enter the gitlab-ci tags for this runner (comma
separated):
Please enter the executor: shell, docker+machine,
docker-ssh+machine, kubernetes, docker, docker-ssh,
parallels, ssh, virtualbox:
shell
Runner registered successfully. Feel free to start it,
but if it's running already the config should be
automatically reloaded!
\end{lstlisting}
\subsection{Start as service}
Open a shell an type: \texttt{gitlab-ci-multi-runner start}

23
gitlab-runner.tex Normal file
View File

@@ -0,0 +1,23 @@
\psset{griddots=0,gridlabels=8pt,subgriddiv=5}
\psset{xunit=10mm,yunit=10mm}
\newcommand{\clr}{black}
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psset{framesep=20pt}
\psset{arrowsize=10pt}
\begin{pspicture}(12,6)
% \psgrid
\rput(2.5,5){\psframebox{\textcolor{\clr}{Gitlab-ci server}}}
\rput(2.5,1){\psframebox{\textcolor{\clr}{Local workstation}}}
\rput(8.5,3){\psframebox{\textcolor{\clr}{Gitlab-ci-multi-runner}}}
\pscurve[fillstyle=none]{->}(4.6,5)(7.2,5)(8.5,3.9)
\pscurve[fillstyle=none]{<-}(3,4.1)(4,3.2)(5.8,3)
\pscurve[fillstyle=none]{<-}(8,2.1)(7.7,1.4)(8.5,.8)(9.3,1.4)(9,2.1)
\psline{->}(1,1.9)(1,4.1)
\rput(7,5.3){build trigger}
\rput(.5,3){push}
\rput(4,2.6){build result}
\rput(8.5,.5){build}
\end{pspicture}

View File

@@ -1,4 +1,4 @@
\newcommand{\docname}{HowTo} \newcommand{\docname}{Gitlab-ci}
\newcommand{\prjname}{arch linux on raspberry pi} \newcommand{\prjname}{gitlab-ci-multi-runner}
\newcommand{\docversion}{0.1} \newcommand{\docversion}{0.1}
\newcommand{\docauthor}{Thomas Klaehn} \newcommand{\docauthor}{Thomas Klaehn}