Commit graph

24 commits

Author SHA1 Message Date
Claudio André
92af703634 CI: add MSAN, TSAN and UBSAN Sanitizers
MemorySanitizer (MSan) is a detector of uninitialized memory reads in C/C++ programs.
Uninitialized values occur when stack- or heap-allocated memory is read before
it is written.

ThreadSanitizer is a tool that detects data races.

UndefinedBehaviorSanitizer (UBSan) is a fast undefined behavior detector. UBSan
catches various kinds of undefined behavior, for example:
- Using misaligned or null pointer
- Signed integer overflow
- Conversion to, from, or between floating-point types which would overflow the
  destination

The llvm.org states that Sanitizers have found thousands of bugs everywhere.
Sanitizers running during CI can prevent bugs from taking up residence. They
are helper tools to maintain bugs out.
2018-07-11 07:56:57 +00:00
Claudio André
26cb1dde06 CI: use a previous Docker image
Fedora itself was/is unstable since some days ago.
See https://gitlab.gnome.org/GNOME/gnome-control-center/merge_requests/109#note_263396.
2018-07-10 12:32:53 -03:00
Claudio André
361e765427 CI: add ASAN Address Sanitizer
AddressSanitizer (or ASan) is a programming tool that detects memory
corruption bugs such as buffer overflows or use after free. AddressSanitizer
is based on compiler instrumentation.

The llvm.org states that Sanitizers have found thousands of bugs everywhere.
Sanitizers running during CI can prevent bugs from taking up residence. They
are helper tools to maintain bugs out.
2018-06-21 13:29:08 -03:00
Claudio André
38487017b3 CI: refactor the build process
In order to shrink the file and reuse "code".
2018-06-21 13:29:08 -03:00
Claudio André
8fb43047df CI: add coverage parsing to the job
It works only if enabled via CI/CD Settings. More info available at
https://docs.gitlab.com/ee/user/project/pipelines/settings.html#test-coverage-parsing.

The parsing regex was tested on my GitLab forked project.
2018-06-21 13:29:08 -03:00
Claudio André
316b901296 CI: avoid rebuilding in the test job
The test job was recompiling the software (unexpected behavior).
This was happening because the git checkout runs after the artifacts
download (resulting in the source code being newer than the object
files).

This commits saves and reuses the working directory produced by the
build job.
2018-06-21 15:35:00 +00:00
Claudio André
186038a014 CI: refactor the GitLab job header
In order to shrink the file and reuse "code".
2018-06-21 15:35:00 +00:00
Claudio André
28a66e5df1 CI: refactor GitLab yaml file 2018-06-21 15:34:59 +00:00
Claudio André
a1d57165c1 CI: add code coverage report 2018-06-21 15:34:59 +00:00
Claudio André
690f15b69d CI: create a workaround to build flatpak
GNOME master image is not working, so, we are using a workaround.
2018-05-28 21:50:50 +00:00
Claudio André
14adc647b5 CI: save the build log 2018-05-28 21:50:50 +00:00
Claudio André
ad0f3f6ffb CI: cache flatpak-builder files
It is needed to make things faster.
2018-05-28 21:50:49 +00:00
Claudio André
5ab9e645ee CI: handle patches while creating a flatpak
Make the flatpak routine able to deal with patches (if needed).
2018-05-16 18:49:35 +00:00
Georges Basile Stavracas Neto
017643dbf9 ci: Reorganize files 2018-05-16 15:18:57 -03:00
Claudio André
72732dd1db CI: create a flatpak
The goal is dogfooding. Allow interested people to try, safely, the
bleeding GNOME Control Center.
2018-05-15 19:16:01 -03:00
Claudio André
f4433b3766 CI: print some info about the build env
It is not possible to debug if the developer knows nothing about
the CI running environment.
2018-05-14 19:39:45 -03:00
Claudio André
4a5a2c7280 CI: add status information to the build 2018-05-14 19:20:37 -03:00
Claudio André
9460babd1e CI: use an updated Docker image
We value repeatability and reproducibility; that said, we need to use a
fresh Fedora. So, pick an image that is updated every week.
2018-05-13 17:03:26 -03:00
Claudio André
66668676fc CI: pass build artifacts to another stage
Avoid to redo some tasks (save git untracked files e use them).

See #46.
2018-05-13 17:03:26 -03:00
Claudio André
ffcd5b15f2 CI: shrink the test process
See #46
2018-05-12 00:30:20 -03:00
Benjamin Berg
37b06c126a ci: Do not run install for testing
There is no need to install g-c-c to run the tests, and in fact, we
should ensure that this is the case as it simplifies testing for e.g.
distributions.
2018-05-02 22:29:33 +00:00
Benjamin Berg
fc072d65a8 ci: Add dbusmock and Xvfb dependency
This is in preparation for testing which requires an X server.
mesa-dri-drivers is required for the OpenGL software renderer.
2018-05-02 22:29:32 +00:00
Georges Basile Stavracas Neto
86f67d7f5e ci: Remove NetworkManager-glib from dependencies
Fedora Rawhide doesn't have it anymore.
2018-03-16 11:56:35 -03:00
Georges Basile Stavracas Neto
b127cb0301 ci: Introduce CI 2018-03-01 17:14:21 -03:00