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 \\
|
||||
INI & Initialization file \\
|
||||
|
||||
CPU & Central Processing Unit \\
|
||||
RAM & Random Access Memory \\
|
||||
|
||||
OWASP & Open Web Application Security Project \\
|
||||
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).
|
||||
|
||||
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
|
||||
programs that facilitate (directly or via intermediary tools) domain name
|
||||
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
|
||||
\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
|
||||
pipelines are defined to build the binary and run tests on \texttt{x86\_64}
|
||||
GNU/Linux targets, one for each of Arch and Alpine (version 3.17).
|
||||
These the two pipelines were identical apart from OS-specific bits such as
|
||||
installing a certain package, etc.
|
||||
For the record, other OS-architecture combinations were not tested.
|
||||
workflow consists of four pipelines, which are run in parallel. Two main
|
||||
pipelines are defined to build the frontend assets, the \texttt{pcmt} binary
|
||||
and run tests on \texttt{x86\_64} GNU/Linux targets, one for each of Arch and
|
||||
Alpine (version 3.17). These the two pipelines are identical apart from
|
||||
OS-specific bits such as installing a certain package, etc. For the record,
|
||||
other OS-architecture combinations were not tested.
|
||||
|
||||
A third pipeline was defined to build a popular static analysis tool called
|
||||
\texttt{golangci-lint} - which is sort of a meta-linter, bundling a staggering
|
||||
amount of linters (linter is a tool that performs static code analysis and can
|
||||
raise awareness of programming errors, flag potentially buggy code constructs,
|
||||
or \emph{mere} stylistic errors) - from sources and then perform the analysis
|
||||
of project's codebase using the freshly built binary. If the result of this
|
||||
step is successful, a handful of code analysis services get pinged in the next
|
||||
steps to take notice of the changes to project's source code and update their
|
||||
metrics, details can be found in the main Drone configuration file
|
||||
\texttt{.drone.yml} and the configuration of \texttt{golangci-lint} can be
|
||||
A third pipeline contains instructions to build a popular static analysis tool
|
||||
called \texttt{golangci-lint}, which is sort of a meta-linter, bundling a
|
||||
staggering amount of linters (linter is a tool that performs static code
|
||||
analysis and can raise awareness of programming errors, flag potentially buggy
|
||||
code constructs, or \emph{mere} stylistic errors) - from sources and then
|
||||
perform the analysis of project's codebase using the freshly built binary. If
|
||||
the result of this step is successful, a handful of code analysis services get
|
||||
pinged in the next steps to take notice of the changes to project's source code
|
||||
and update their metrics, details can be found in the main Drone configuration
|
||||
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}.
|
||||
The median build time as of writing was 1 minute, which includes running all
|
||||
three pipelines, and that is acceptable.
|
||||
|
||||
\obr{Drone CI median
|
||||
build}{fig:drone-median-build}{.77}{graphics/drone-median-build}
|
||||
The fourth pipeline focuses on linting the Containerfile and building the
|
||||
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}
|
||||
|
Reference in New Issue
Block a user