|
|
@@ -1,216 +1,46 @@
|
|
|
|
\section{Bootloader}
|
|
|
|
\section*{Pike Blue Release HowTo}
|
|
|
|
To build a bootloader for the project \textit{moray white 2} you have to do the
|
|
|
|
\subsection*{Internal release}
|
|
|
|
following steps:\\
|
|
|
|
A push event to a \textit{release/...} named branch will create release
|
|
|
|
\begin{enumerate}
|
|
|
|
candidates. These release candidates are deployed to the pike blue project svn
|
|
|
|
\item check/edit build job file
|
|
|
|
repository (\texttt{http://dabsvn01.internal.novero.com/svn/\ \\
|
|
|
|
\item check/edit configuration file
|
|
|
|
0\_31X\_P0610\_pike\_blue/trunk/development/software/\ \\
|
|
|
|
\item create release tag in gitlab
|
|
|
|
releases/release\_candidate/}).\\
|
|
|
|
\end{enumerate}
|
|
|
|
The branch can be created eiter by gitlab ui or locally.
|
|
|
|
|
|
|
|
\subsubsection*{Local}
|
|
|
|
\subsection{Build job file}
|
|
|
|
Checkout the new release branch:
|
|
|
|
The build job file (\texttt{.gitlab-ci.yml}) could be found in the root
|
|
|
|
|
|
|
|
directory of the repository. Here only the build configuration is done. In the
|
|
|
|
|
|
|
|
\texttt{variables} Section the variable \texttt{PROJECT} contains the current
|
|
|
|
|
|
|
|
build configuration.\\
|
|
|
|
|
|
|
|
Possible build configurations:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\captionof{table}{Values for build configutation}
|
|
|
|
|
|
|
|
\label{tab:var_build_confs}
|
|
|
|
|
|
|
|
\begin{tabular}{l l}
|
|
|
|
|
|
|
|
\cellcolor{black}\color{white}build config & \cellcolor{black}\color{white}meaning \\
|
|
|
|
|
|
|
|
white2-dbg & use the debug configuration to build the release\\
|
|
|
|
|
|
|
|
white2-rel & use the release configuration to build the release\\\\
|
|
|
|
|
|
|
|
\end{tabular}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\textbf{Example}
|
|
|
|
|
|
|
|
\lstsetbash
|
|
|
|
\lstsetbash
|
|
|
|
\begin{lstlisting}
|
|
|
|
\begin{lstlisting}
|
|
|
|
variables:
|
|
|
|
git checkout -b release/<release_name>
|
|
|
|
PROJECT: "white2-dbg"
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
Prepare build variables in the \textit{variables} section of the build job
|
|
|
|
|
|
|
|
file\\(\texttt{.gitlab-ci.yml} in pike blue's root directory).
|
|
|
|
\begin{lstlisting}
|
|
|
|
\begin{lstlisting}
|
|
|
|
variables:
|
|
|
|
variables:
|
|
|
|
PROJECT: "white2-rel"
|
|
|
|
PRODUCT_NAME: "PI"
|
|
|
|
...
|
|
|
|
PRODUCT_VARIANT: "CX"
|
|
|
|
|
|
|
|
PROJECT_VERSION: "20"
|
|
|
|
|
|
|
|
SW_MAJOR: "1"
|
|
|
|
|
|
|
|
SW_MINOR: "0"
|
|
|
|
\end{lstlisting}
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
Push the new branch to the gitlab-server:
|
|
|
|
\subsection{Configuration file}
|
|
|
|
|
|
|
|
The configuration file (\texttt{configuration.xml}) depends on the build
|
|
|
|
|
|
|
|
configuration (\texttt{white2-dbg} or \texttt{white2-rel}) and could be found
|
|
|
|
|
|
|
|
in following folder (relative to the repositories root folder):\\
|
|
|
|
|
|
|
|
\begin{lstlisting}
|
|
|
|
\begin{lstlisting}
|
|
|
|
moray/config/<build_config>/
|
|
|
|
git push -u origin release/<release_name>
|
|
|
|
\end{lstlisting}
|
|
|
|
\end{lstlisting}
|
|
|
|
Amongst others informations regarding version numbers, deploy file names and
|
|
|
|
\subsection*{External release}
|
|
|
|
deploy locations are encapsulated in the \texttt{postlink} target.
|
|
|
|
A \textit{release/\_PI\_CX\_20...} named tag in the pike blue repository at the
|
|
|
|
|
|
|
|
gitlab server will create a release and deploys it to the pike blue project
|
|
|
|
\captionof{table}{Release relevant attributes in configuration file}
|
|
|
|
svn repository (\texttt{http://dabsvn01.internal.novero.com/svn/\ \\
|
|
|
|
\label{tab:conf_vars}
|
|
|
|
0\_31X\_P0610\_pike\_blue/trunk/development/software/\ \\
|
|
|
|
\begin{tabular}{l l}
|
|
|
|
releases/release/}).\\
|
|
|
|
\cellcolor{black}\color{white}attributes & \cellcolor{black}\color{white}meaning \\
|
|
|
|
The tag can be created eiter by gitlab ui or locally.
|
|
|
|
OUT\_EXECUTABLE\_NAME & file name for the bootloader executable\\
|
|
|
|
\subsubsection{Gitlab UI}
|
|
|
|
REL\_VERSION & version numbering scheme\\
|
|
|
|
To create the tag:
|
|
|
|
OUT\_DEPLOY\_PATH & subversion link to deploy the release to\\\\
|
|
|
|
\begin{itemize}
|
|
|
|
\end{tabular}
|
|
|
|
\item go to the pike blue gitlab tags section \\
|
|
|
|
|
|
|
|
(\texttt{https://novgit05.novero.com/Pike/Blue/tags})
|
|
|
|
It's usually enough to change \texttt{OUT\_EXECUTABLE\_NAME} and
|
|
|
|
\item Hit the \textit{+ New tag} button
|
|
|
|
\texttt{REL\_VERSION} according to the release numbering scheme.\\\\
|
|
|
|
\item Choose a valid tag name \textit{(release/PI\_CX\_20...)}
|
|
|
|
|
|
|
|
\item Choose the above created release branch as source for the new tag.
|
|
|
|
\textbf{Example}
|
|
|
|
\item Hit the \textit{Create tag} button
|
|
|
|
\begin{lstlisting}
|
|
|
|
\end{itemize}
|
|
|
|
...
|
|
|
|
|
|
|
|
<attribute name="OUT_EXECUTABLE_NAME"
|
|
|
|
|
|
|
|
value="MO_BL_42_3.0.6_dbg.S19"/>
|
|
|
|
|
|
|
|
<attribute name="REL_VERSION"
|
|
|
|
|
|
|
|
value="42.3.0.6"/>
|
|
|
|
|
|
|
|
<attribute name="OUT_DEPLOY_PATH"
|
|
|
|
|
|
|
|
value="http://dabsvn01.internal.novero.com/svn/\
|
|
|
|
|
|
|
|
0_31X_P0521_moray_white2/trunk/development/\
|
|
|
|
|
|
|
|
software/releases/WTC/"/>
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
\subsection{Create release tag in gitlab}
|
|
|
|
|
|
|
|
To create a release candidate a tag in gitlab has to be created. Of course this
|
|
|
|
|
|
|
|
could be done either locally (don't forget to push the tag) or by using the
|
|
|
|
|
|
|
|
gitlab ui.
|
|
|
|
|
|
|
|
\subsubsection{Release candidate}
|
|
|
|
|
|
|
|
To create a release candidate the tag name must match the following regular
|
|
|
|
|
|
|
|
expression:
|
|
|
|
|
|
|
|
\begin{lstlisting}
|
|
|
|
|
|
|
|
^release/white2/MO_BL_42_[0-9]+\.[0-9]+\.[0-9]+_RC[0-9]+
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\textbf{Example}
|
|
|
|
|
|
|
|
\begin{lstlisting}
|
|
|
|
|
|
|
|
release/white2/MO_BL_42_0.0.0_RC0
|
|
|
|
|
|
|
|
release/white2/MO_BL_42_255.255.255_RC255
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{Release}
|
|
|
|
|
|
|
|
To create a release the tag name must match the following regular expression:
|
|
|
|
|
|
|
|
\begin{lstlisting}
|
|
|
|
|
|
|
|
^release/white2/MO_BL_42_[0-9]+\.[0-9]+\.[0-9]+
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\textbf{Example}
|
|
|
|
|
|
|
|
\begin{lstlisting}
|
|
|
|
|
|
|
|
release/white2/MO_BL_42_0.0.0
|
|
|
|
|
|
|
|
release/white2/MO_BL_42_255.255.255
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\textbf{Note:} Any tag which shouldn't trigger a release build must not match
|
|
|
|
|
|
|
|
these regular expression rules.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\section{Application}
|
|
|
|
|
|
|
|
For application building in the project \textit{moray white 2} the same steps as
|
|
|
|
|
|
|
|
for bootloader building are necessary:\\
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
|
|
|
\item check/edit build job file
|
|
|
|
|
|
|
|
\item check/edit configuration file
|
|
|
|
|
|
|
|
\item create release tag in gitlab
|
|
|
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{Build job file}
|
|
|
|
|
|
|
|
The build job file (\texttt{.gitlab-ci.yml}) could be found in the root
|
|
|
|
|
|
|
|
directory of the repository. Here only the build configuration is done. In the
|
|
|
|
|
|
|
|
\texttt{variables} Section the variable \texttt{PROJECT} contains the current
|
|
|
|
|
|
|
|
build configuration.\\
|
|
|
|
|
|
|
|
Possible build configurations:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\captionof{table}{Values for build configutation}
|
|
|
|
|
|
|
|
\label{tab:var_build_confs}
|
|
|
|
|
|
|
|
\begin{tabular}{l l}
|
|
|
|
|
|
|
|
\cellcolor{black}\color{white}build config & \cellcolor{black}\color{white}meaning \\
|
|
|
|
|
|
|
|
white2-dbg & use the debug configuration to build the release\\
|
|
|
|
|
|
|
|
white2-rel & use the release configuration to build the release\\\\
|
|
|
|
|
|
|
|
\end{tabular}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\textbf{Example}
|
|
|
|
|
|
|
|
\lstsetbash
|
|
|
|
|
|
|
|
\begin{lstlisting}
|
|
|
|
|
|
|
|
variables:
|
|
|
|
|
|
|
|
PROJECT: "white2-dbg"
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
\begin{lstlisting}
|
|
|
|
|
|
|
|
variables:
|
|
|
|
|
|
|
|
PROJECT: "white2-rel"
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{Configuration file}
|
|
|
|
|
|
|
|
The configuration file (\texttt{configuration.xml}) depends on the build
|
|
|
|
|
|
|
|
configuration (\texttt{white2-dbg} or \texttt{white2-rel}) and could be found
|
|
|
|
|
|
|
|
in following folder (relative to the repositories root folder):\\
|
|
|
|
|
|
|
|
\begin{lstlisting}
|
|
|
|
|
|
|
|
config/<build_config>/
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
Amongst others informations regarding version numbers, bootloader location,
|
|
|
|
|
|
|
|
deploy file names and deploy locations are encapsulated in the \texttt{postlink}
|
|
|
|
|
|
|
|
target.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\captionof{table}{Release relevant attributes in configuration file}
|
|
|
|
|
|
|
|
\label{tab:conf_vars}
|
|
|
|
|
|
|
|
\begin{tabular}{l l}
|
|
|
|
|
|
|
|
\cellcolor{black}\color{white}attributes & \cellcolor{black}\color{white}meaning \\
|
|
|
|
|
|
|
|
OUT\_EXECUTABLE\_NAME & file name for the bootloader executable\\
|
|
|
|
|
|
|
|
REL\_VERSION & version numbering scheme\\
|
|
|
|
|
|
|
|
IN\_BOOTLOADER\_URL & path to the bootloader url containing the\\
|
|
|
|
|
|
|
|
& regarding bootloader executable\\
|
|
|
|
|
|
|
|
OUT\_DEPLOY\_PATH & subversion link to deploy the release to\\\\
|
|
|
|
|
|
|
|
\end{tabular}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
It's usually enough to change \texttt{OUT\_EXECUTABLE\_NAME} and
|
|
|
|
|
|
|
|
\texttt{REL\_VERSION} according to the release numbering scheme. Only in case of
|
|
|
|
|
|
|
|
a changed bootloader the \texttt{IN\_BOOTLOADER\_URL} has to be changed.\\\\
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\textbf{Example}
|
|
|
|
|
|
|
|
\begin{lstlisting}
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
<attribute name="OUT_EXECUTABLE_NAME"
|
|
|
|
|
|
|
|
value="MO_BL_42_3.0.6_dbg.S19"/>
|
|
|
|
|
|
|
|
<attribute name="REL_VERSION"
|
|
|
|
|
|
|
|
value="42.3.0.6"/>
|
|
|
|
|
|
|
|
<attribute name="IN_BOOTLOADER_URL" value="http://\
|
|
|
|
|
|
|
|
dabsvn01/svn/0_31X_P0521_moray_white2/trunk/\
|
|
|
|
|
|
|
|
development/software/releases/WTC/Bootloader/\
|
|
|
|
|
|
|
|
MO_BL_42_3.1.6.S19"/>
|
|
|
|
|
|
|
|
<attribute name="OUT_DEPLOY_PATH"
|
|
|
|
|
|
|
|
value="http://dabsvn01.internal.novero.com/svn/\
|
|
|
|
|
|
|
|
0_31X_P0521_moray_white2/trunk/development/\
|
|
|
|
|
|
|
|
software/releases/WTC/"/>
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
\subsection{Create release tag in gitlab}
|
|
|
|
|
|
|
|
To create a release candidate a tag in gitlab has to be created. Of course this
|
|
|
|
|
|
|
|
could be done either locally (don't forget to push the tag) or by using the
|
|
|
|
|
|
|
|
gitlab ui.
|
|
|
|
|
|
|
|
\subsubsection{Release candidate}
|
|
|
|
|
|
|
|
To create a release candidate the tag name must match the following regular
|
|
|
|
|
|
|
|
expression:
|
|
|
|
|
|
|
|
\begin{lstlisting}
|
|
|
|
|
|
|
|
^release/white2/MO_WC_42_[0-9]+\.[0-9]+\.[0-9]+_RC[0-9]+
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\textbf{Example}
|
|
|
|
|
|
|
|
\begin{lstlisting}
|
|
|
|
|
|
|
|
release/white2/MO_WC_42_0.0.0_RC0
|
|
|
|
|
|
|
|
release/white2/MO_WC_42_255.255.255_RC255
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{Release}
|
|
|
|
|
|
|
|
To create a release the tag name must match the following regular expression:
|
|
|
|
|
|
|
|
\begin{lstlisting}
|
|
|
|
|
|
|
|
^release/white2/MO_WC_42_[0-9]+\.[0-9]+\.[0-9]+
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\textbf{Example}
|
|
|
|
|
|
|
|
\begin{lstlisting}
|
|
|
|
|
|
|
|
release/white2/MO_WC_42_0.0.0
|
|
|
|
|
|
|
|
release/white2/MO_WC_42_255.255.255
|
|
|
|
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\textbf{Note:} Any tag which shouldn't trigger a release build must not match
|
|
|
|
|
|
|
|
these regular expression rules.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|