Commit Graph

148 Commits

Author SHA1 Message Date
Michel Dänzer
b809f3dc85 ci: Use "when: on_success" in job rules
Instead of "when: always". The latter would result in jobs running even
after a dependency job failed, which would inevitably result in the
dependent job failing as well. See
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2628#note_1758824
for an example.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3034>
2023-05-31 14:31:20 +00:00
Marco Trevisan (Treviño)
3eabc4c707 ci: Use virtme-ng
virtme is now deprecated, so let's use the new generation one.

Also we don't require anymore pyelftools but we do need argcomplete

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2821
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3029>
2023-05-31 08:15:04 +00:00
Marco Trevisan (Treviño)
e103567600 ci: Do not download container builds artifacts at later steps
We don't need their artifacts, so let's just depend on them

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3024>
2023-05-29 17:19:03 +02:00
Marco Trevisan (Treviño)
1d766dfbed ci: Perform MR-checks only in MR-branches only
This avoids even starting some jobs that we don't require

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3024>
2023-05-29 17:19:03 +02:00
Marco Trevisan (Treviño)
b0f35cca4d ci: Do not clone the mutter repo when deploying pages
We don't use any source file

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3024>
2023-05-29 17:19:03 +02:00
Marco Trevisan (Treviño)
3c975f78bc ci: Always perform git cloning as user
We are now building and testing mutter as user, but the clone may happen
as root, before the docker image takes place.

This may create troubles to git, causing errors such as:
 fatal: detected dubious ownership in repository at ...

And we can't fix this using safe.directory option because we have no
control on the system at this scope.

So, let's just handle the cloning manually so that the meta-user is
always the owner of the repository.

This fixes the dist job, but also other jobs that may fail because of
this reason.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3024>
2023-05-29 17:19:03 +02:00
Marco Trevisan (Treviño)
aef3ee4e61 ci: Use named base job to skip git cloning (AKA GIT_STRATEGY: none)
It's not clear what it does, so use some clearer naming

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3024>
2023-05-29 17:19:03 +02:00
Marco Trevisan (Treviño)
c472570194 ci: Use extends to inherit test-setup values
Using the old replace syntax doesn't allow to extend dicts such as
variables or other values, but instead it replaces them.

So use a newer and safer syntax, given we don't need to replace any
parameter where used.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3024>
2023-05-29 17:19:03 +02:00
Marco Trevisan (Treviño)
0adf3dcba0 ci: Do not run meson install with sudo
It will happen automatically since we have pkexec calling it implicitly

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3024>
2023-05-29 17:19:03 +02:00
Marco Trevisan (Treviño)
e613ffb5a5 ci: Always run dist job at marge-bot state
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3024>
2023-05-29 17:19:03 +02:00
Marco Trevisan (Treviño)
2ff351cc9b ci: Allow to run dist job manually in non-merge requests
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3024>
2023-05-29 17:19:03 +02:00
Marco Trevisan (Treviño)
233fb6b7e6 ci: Disable building introspection when not needed
We can just save few cycles when the build-test doesn't require it.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3016>
2023-05-25 09:21:57 +00:00
Marco Trevisan (Treviño)
0b30b2a1d7 ci: Print error logs on failures
Indeed we have more detailed logs, but this allows quicker checks.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3016>
2023-05-25 09:21:57 +00:00
Marco Trevisan (Treviño)
69cc65d15f ci: Run all the pipeline jobs as User
It's just closer to reality of an user session.

As per this:
 - We need to bump the required CI template to use this feature.
 - Use sudo in the actions that require it
 - Replace pkexec with sudo (it wouldn't work otherwise)
 - Ensure we don't rebuild during install not to break build dir
 - Give permission to use /dev/kvm to our user (we do this during the
   image creation because we don't have an user when $FDO_DISTRIBUTION_EXEC
   happens)

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3016>
2023-05-25 09:21:57 +00:00
Marco Trevisan (Treviño)
0c56b143a2 ci: Use dry-run install during the build test
We already test install as part of other jobs (such as
can-build-gnome-shell) and in general that's wrong because we may
add to the final install path artifacts that are required during tests,
hiding potential issues with meson test when those files are not
installed.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3016>
2023-05-25 09:21:57 +00:00
Marco Trevisan (Treviño)
4540284c06 ci: Avoid using trailing && in FDO_DISTRIBUTION_EXEC
It's not required and makes things hard to maintain, we can just rely on
the fact we're in a shell and just use `set -e` to prevent any
unexpected failure to go unnoticed.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3016>
2023-05-25 09:21:57 +00:00
Florian Müllner
e49e9ed59e ci: Rebase image to F38
By now F38 is stable enough to use it as the base of our CI image,
so do that.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2913>
2023-05-19 13:39:10 +00:00
Florian Müllner
b76a9100ea ci: Do not clean caches while building image
The template already does this at the end, so this step is
pointless in the best case.

When building the x86-64 image, we install additional packages
afterwards, so the repo metadata is downloaded again.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3010>
2023-05-18 19:02:29 +02:00
Florian Müllner
73ac37e751 ci: Stop running meson without subcommand
Invoking meson with no command is deprecated in favor of
`meson setup`.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3010>
2023-05-18 19:02:11 +02:00
Carlos Garnacho
ae2ceeda0b ci,tests: Pass GTK_A11Y=none to tests
Same rationale applies than NO_AT_BRIDGE, but for GTK4 bits.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2864>
2023-03-03 20:17:01 +00:00
Carlos Garnacho
53cf1a2878 ci: Update image with new/future dependencies
gnome-desktop4 will be used from both Mutter and GNOME Shell,
and libnma-gtk4 only from GNOME Shell.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2864>
2023-03-03 20:17:00 +00:00
Jonas Ådahl
f34c6da956 build: Depend on glib 2.75
This allows us to use g_clear_fd().

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2806>
2023-01-30 15:11:26 +00:00
Bilal Elmoussaoui
6ea70600af ci: Add a Wayland only target
To ensure a Wayland only job without Xwayland and in the future
without x11 server works as expected

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2399>
2023-01-03 20:45:04 +00:00
Bilal Elmoussaoui
f7c55d478a ci: Disable xwayland when wayland is disabled
As we error out if wayland is disabled and xwayland is enabled

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2399>
2023-01-03 20:45:04 +00:00
Robert Mader
02d35309e6 ci: Bump base image to F37
And clean up custom installs.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2769>
2022-12-19 14:25:35 +00:00
Hunor Csomortáni
88a53cc9ce ci: Fix the expected name of the junit report
Tests are run with '--setup plain', expect testlog-plain.junit.xml as an
artifact name.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2733>
2022-12-06 14:08:37 +01:00
Jonas Ådahl
4e3450ea4e ci: Upgrade python-dbusmock
This is needed for running GNOME Shell, as the older version has an
incorrect PowerProfiles property type.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2719>
2022-11-25 21:32:06 +01:00
Jonas Ådahl
1b65fedc9b ci: Only launch a single mocked D-Bus environment for all tests
This cuts away a lot of time wasted on spawning and tearing down D-Bus
daemons and mocked service for every test case.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2678>
2022-11-01 21:04:21 +00:00
Marco Trevisan (Treviño)
0a234f320b ci: Enable coverage report using cobertura format
This will allow to integrate coverage information with MR's diffs.

See https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization.html

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2515>
2022-09-27 17:13:32 +02:00
Marco Trevisan (Treviño)
0cb6a9e41a ci: Expose Coverage report and Documentation artifacts to PRs
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2515>
2022-09-27 17:13:01 +02:00
Jonas Ådahl
3faf1f15d7 ci: Install colord and lcms2 devel packages
Needed for colord integration and color management.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2141>
2022-09-01 14:31:40 +00:00
Jonas Ådahl
d9030e02d1 ci: Enable 'catch' backtrace generation
catch needs to be able to use ptrace(); asan builders allow this, so tag
the test steps with asan and asan-aarch64 to make them run on capable
runners.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2561>
2022-08-19 15:39:57 +02:00
Jonas Ådahl
530d296a0c ci: Don't use common build configuration in dist
In the dist job, use the default configuration, instead of the one used
elsewhere in CI that aims to enable as many code paths as possible.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2561>
2022-08-19 15:39:57 +02:00
Florian Müllner
d70b0c78e0 ci: Bump base image to F36
It's this time of the year again ...

The glibc update means that we finally run into the catchsegv removal
issue in our CI image. At least for now, solve this by including the
glibc-tools project, which aims at keeping those tools alive.

[jadahl]: Bumped virtme to include https://github.com/amluto/virtme/pull/77

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2430>
2022-08-18 15:02:12 +00:00
Florian Müllner
c6dc12cdc5 ci: Drop distro version from image name
We are unlikely to ever use multiple fedora versions, so all the
versioned name does is being annoying when updating to a newer
base image.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2430>
2022-08-18 15:02:12 +00:00
Jordan Petridis
5d81f6d89d ci: Avoid duplicate pipelines vol 2
This is a followup to GNOME/mutter!1578

This commit does a couple of things to avoid creating multiple
pipelines per commit.

First, it avoid catch all `when: manual` rules, which might
end up matching custom variables set which might potentially
not be handled.

Secondly it reworks the `workflow:rules:` and the pipeline guard
rules to avoid duplicate pipelines as the gitlab documentation
suggests.

Last, it switches from yaml anchors to the new `reference` gitlab
keyword which is more flexible.

https://docs.gitlab.com/ee/ci/jobs/job_control.html#avoid-duplicate-pipelines

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2534>
2022-08-17 11:46:45 +00:00
Jonas Ådahl
a4e71361b6 ci: Always retry the image build step
The image build step is prone to race conditions, e.g. token changes. It
also tends to hit sporadic connection errors to FDO's gitlab. To
minimize the risk of these types of issues block pipelines, always retry
the image building step if it failed.

This has the unwanted consequence that changes to the image building
that results in the script actually failing, but right now there doesn't
appear to be a way to distinguish between actual build errors, and the
mentioned race conditions, as both cause the script to fail.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2564>
2022-08-10 12:54:33 +00:00
Florian Müllner
d3a7e9a7b5 ci: Include gcr4 in image
Needed in order to port gnome-shell to the new major version
(https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2386)

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2547>
2022-08-02 16:26:15 +02:00
Robert Mader
823e3a5c72 Bump required wayland-protocols version
For `wp_single_pixel_buffer_v1`

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2246>
2022-08-02 12:19:42 +00:00
Florian Müllner
588e4e88f5 ci: Update gjs
Allow gnome-shell to depend on recent improvements in gjs.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2523>
2022-07-26 21:06:15 +00:00
José Expósito
cddf30c1df ci: Update Wayland to v1.21.0
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1962>
2022-07-14 22:29:56 +00:00
Jonas Ådahl
973b94ae46 ci: Bump the container image
This will include gtk+ 3.24.34, which contains a fix avoiding errors
when querying RANDR after Xwayland terminated.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2484>
2022-07-01 15:46:25 +00:00
Jonas Ådahl
3ee28bc336 ci: Fix Xwayland build config
Some of the options doesn't exist anymore, and warnings are now fatal.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2484>
2022-07-01 15:46:25 +00:00
Bilal Elmoussaoui
d1a85c34cc ci: Build and deploy documentations
A first step towards better documentations of Mutter
and it internal libraries

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2427>
2022-06-03 16:56:49 +00:00
Jonas Ådahl
5c5e30638d ci: Run KVM tests
This commit makes the KVM tests run in special VM runners tagged with
the 'kvm' tag. In order to avoid building the kernel image used for
running the tests each pipeline, it's built as part of the CI image
building.

For now, KVM tests are only run on the x86_64 architecture. The reasons
for this are two that the kernel image building script doesn't yet handle
any other architecture than x86_64 due to differences in how the image
is built and handled, as well as the fact that there only exists a kvm
tagged runner for x86_64.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2152>
2022-03-28 16:17:21 +00:00
Jonas Ådahl
3650cb941f ci: Break up some long meson lines
Placing one configuration option per line makes it easier to see what is
enabled or not.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2152>
2022-03-28 16:17:21 +00:00
Jonas Ådahl
11ae4c2084 ci: Put wild cards in single quotes
To not expand coverage-* into actual coverage files, put the argument
in quotes, so that all files are added.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2324>
2022-03-07 09:54:43 +00:00
Jonas Ådahl
cccf133f55 ci: Increase warnlevel from 1 to 2
This will hopefully catch more things than -Wall.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2319>
2022-03-04 23:12:24 +00:00
Carlos Garnacho
40627f88cf ci: Run coverage in all tests, and merge results
Instead of having different coverage outputs for different architectures
and compilation flags, have each of those tests run coverage in order
to generate a JSON report, and have that merged at a final common job.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2315>
2022-03-04 22:47:04 +00:00
Jonas Ådahl
370de58868 wayland/surface: Add support for wl_surface.offset
This aims to replace the x,y arguments in wl_surface.attach(); meaning
it can be used more sanely together with EGL, and at all when using
Vulkan.

The most common use case for the offset is setting the hotspot of DND
surfaces.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1905>
2022-03-04 17:38:30 +01:00