tex: changes in the CI section+aux
This commit is contained in:
parent
5761f43b15
commit
e940179064
@ -30,6 +30,9 @@ YAML & Yet Another Markup Language \\
|
|||||||
JSON & Java Script Object Notation \\
|
JSON & Java Script Object Notation \\
|
||||||
INI & Initialization file \\
|
INI & Initialization file \\
|
||||||
|
|
||||||
|
CPU & Central Processing Unit \\
|
||||||
|
RAM & Random Access Memory \\
|
||||||
|
|
||||||
OWASP & Open Web Application Security Project \\
|
OWASP & Open Web Application Security Project \\
|
||||||
NIST & National Institute of Standards and Technology \\
|
NIST & National Institute of Standards and Technology \\
|
||||||
|
|
||||||
|
51
tex/text.tex
51
tex/text.tex
@ -135,7 +135,7 @@ present, security focus of the development teams, user facing signalling
|
|||||||
(padlock colours, scary warnings).
|
(padlock colours, scary warnings).
|
||||||
|
|
||||||
Browsers, sometimes used together with the word that can serve as a real tell
|
Browsers, sometimes used together with the word that can serve as a real tell
|
||||||
for their specialisation - web browsers - are programs intended for
|
for their specialisation - \emph{web} browsers - are programs intended for
|
||||||
\emph{browsing} of \emph{the web}. In more technical terms, browsers are
|
\emph{browsing} of \emph{the web}. In more technical terms, browsers are
|
||||||
programs that facilitate (directly or via intermediary tools) domain name
|
programs that facilitate (directly or via intermediary tools) domain name
|
||||||
lookups, connecting to web servers, optionally establishing a secure
|
lookups, connecting to web servers, optionally establishing a secure
|
||||||
@ -456,29 +456,38 @@ writes.
|
|||||||
|
|
||||||
The entire configuration used to run the pipelines can be found in a file named
|
The entire configuration used to run the pipelines can be found in a file named
|
||||||
\texttt{.drone.yml} at the root of the main source code repository. The
|
\texttt{.drone.yml} at the root of the main source code repository. The
|
||||||
workflow consists of three pipelines, which are run in parallel. Two main
|
workflow consists of four pipelines, which are run in parallel. Two main
|
||||||
pipelines are defined to build the binary and run tests on \texttt{x86\_64}
|
pipelines are defined to build the frontend assets, the \texttt{pcmt} binary
|
||||||
GNU/Linux targets, one for each of Arch and Alpine (version 3.17).
|
and run tests on \texttt{x86\_64} GNU/Linux targets, one for each of Arch and
|
||||||
These the two pipelines were identical apart from OS-specific bits such as
|
Alpine (version 3.17). These the two pipelines are identical apart from
|
||||||
installing a certain package, etc.
|
OS-specific bits such as installing a certain package, etc. For the record,
|
||||||
For the record, other OS-architecture combinations were not tested.
|
other OS-architecture combinations were not tested.
|
||||||
|
|
||||||
A third pipeline was defined to build a popular static analysis tool called
|
A third pipeline contains instructions to build a popular static analysis tool
|
||||||
\texttt{golangci-lint} - which is sort of a meta-linter, bundling a staggering
|
called \texttt{golangci-lint}, which is sort of a meta-linter, bundling a
|
||||||
amount of linters (linter is a tool that performs static code analysis and can
|
staggering amount of linters (linter is a tool that performs static code
|
||||||
raise awareness of programming errors, flag potentially buggy code constructs,
|
analysis and can raise awareness of programming errors, flag potentially buggy
|
||||||
or \emph{mere} stylistic errors) - from sources and then perform the analysis
|
code constructs, or \emph{mere} stylistic errors) - from sources and then
|
||||||
of project's codebase using the freshly built binary. If the result of this
|
perform the analysis of project's codebase using the freshly built binary. If
|
||||||
step is successful, a handful of code analysis services get pinged in the next
|
the result of this step is successful, a handful of code analysis services get
|
||||||
steps to take notice of the changes to project's source code and update their
|
pinged in the next steps to take notice of the changes to project's source code
|
||||||
metrics, details can be found in the main Drone configuration file
|
and update their metrics, details can be found in the main Drone configuration
|
||||||
\texttt{.drone.yml} and the configuration of \texttt{golangci-lint} can be
|
file \texttt{.drone.yml} and the configuration for the \texttt{golangci-lint}
|
||||||
|
tool itself (what linters are enabled/disabled and with whats settings) can be
|
||||||
found in the root of the repository in the file named \texttt{.golangci.yml}.
|
found in the root of the repository in the file named \texttt{.golangci.yml}.
|
||||||
The median build time as of writing was 1 minute, which includes running all
|
|
||||||
three pipelines, and that is acceptable.
|
|
||||||
|
|
||||||
\obr{Drone CI median
|
The fourth pipeline focuses on linting the Containerfile and building the
|
||||||
build}{fig:drone-median-build}{.77}{graphics/drone-median-build}
|
container, although the latter action is only performed on feature branches,
|
||||||
|
\emph{pull requests} or \emph{tag} events.
|
||||||
|
|
||||||
|
The median build time as of writing was 1 minute, which includes running all
|
||||||
|
four pipelines, and that is acceptable. Build times might of course vary
|
||||||
|
depending on the hardware, for reference, these builds are run on a machine
|
||||||
|
equipped with a Zen 3 Ryzen 5 5600 CPU with nominal clock times, DDR4@3200MHz
|
||||||
|
RAM, a couple of PCIe Gen 4 SSDs in a mirror setup and a 400MiB downlink.
|
||||||
|
|
||||||
|
\obr{Drone CI median build
|
||||||
|
time}{fig:drone-median-build}{.77}{graphics/drone-median-build}
|
||||||
|
|
||||||
|
|
||||||
\n{2}{Source code repositories}\label{sec:repos}
|
\n{2}{Source code repositories}\label{sec:repos}
|
||||||
|
Reference in New Issue
Block a user