This effectively means we do not build on non-x86_64. But the template
gives us a well maintained base.
Also added into the image is gsettings-desktop-schemas from git, so that
the scheduled job only needs to be manually run when an update is
needed.
ASAN hasn't been useful so far; we don't really see
meaningful results from it, it takes a long time to
run since it builds Settings twice, etc.
Move it to manual.
Building the docker images has been failing for a while now. The root
cause appears to be a docker upgrade causing issues with TLS. See
https://about.gitlab.com/blog/2019/07/31/docker-in-docker-with-docker-19-dot-03/
Update the configuration so that the images can be built again.
Thanks to Bartłomiej Piotrowski for debugging the issue and solving it
for gnome-settings-daemon!
For the "development" profile, lets use the Nightly variant, to
visually indicate to users that they are running an unstable
version of the application.
Currently they are built from cron, but we can use Gitlab's
only:
changes:
- path
support to also trigger on path changes. This is restricted to only work
for pushes for master, so that branches / merge requests don't attempt
to rebuild the image.
The current code relies on GLib API and uses the
available mounts to calculate the available partition
size. This is because this code assumes that more
than one OS can be installed in the same drive, and
wouldn't make sense to show the whole disk size in
this situation.
That, however, clashes with the general purpose of
the panel, for it is meant to show general information
about the user's computer, and it is not reporting
the full disk size.
Fix that by using the UDisks API to get the real size
of the full disks.
https://bugzilla.gnome.org/show_bug.cgi?id=639376
Slighly modified by Iain Lane <iainl@gnome.org> to
port to meson and add udisks2 to CI deps.
Fixes#285.
Fixes#302.
gnome-nightly-oci repo has been deprecated for a while and replaced with
gnome-runtime-images[1]
The new repo also includes images with the stable GNOME runtime.
Which can be used by changing `gnome:master` to `gnome:3.28` for example.
[1] https://gitlab.gnome.org/GNOME/gnome-runtime-images
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.
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.
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.