Commit Graph

182 Commits

Author SHA1 Message Date
Florian Müllner
855a9cfcad ci: Rebase image to F40
F39 has been branched, so we can use it as base of our CI image
and reduce the number of custom built components.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3613>
2024-02-25 21:46:36 +00:00
Florian Müllner
a06362a001 ci: Bump image
gsettings-desktop-schemas had its beta release, so rebuild the
image to pull that in, so that we can officially depend on it.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3586>
2024-02-14 20:06:11 +00:00
Dor Askayo
868fbe622b meson: Make libdisplay_info a feature option
Some features depend on libdisplay-info, and making it a feature
option should increase its visibility and adoption.

This makes it required when building with "-Dauto_features=enabled",
unless explicitly disabled with "-Dlibdisplay_info=disabled".

If "-Dauto_features=enabled" is not set, everything remains the
same.

In the future, the libdisplay_info option can be made "enabled" by
default so that it would always be required unless explicitly
disabled.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3582>
2024-02-14 11:37:21 +00:00
Florian Müllner
6762626747 ci: Install gi-docgen builddeps
Don't assume the dependencies are covered by the other modules.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3575>
2024-02-10 21:01:33 +01:00
Florian Müllner
b968daf35c ci: Don't build wayland-protocols
Fedora 39 already includes 1.33, no need to build it ourselves.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3575>
2024-02-10 19:55:24 +01:00
Florian Müllner
a8629cfbc7 ci: Stop building glib
Bleeding edge glib was required at some point last cycle, but
right now the last stable release is good enough.

Relying on the packaged version also avoids the need for an
updated gjs, as glib now provides a newer API version of
GIRepository.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3575>
2024-02-10 19:40:56 +01:00
Bilal Elmoussaoui
263423d38e ci: Install gi-docgen from main
In order to use the latest features it has

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3538>
2024-02-09 12:29:50 +00:00
Florian Müllner
4c4735cdf6 ci: Don't pass superfluous args to install-meson-project
Since a383917b23, the script only takes two positional arguments,
the repo URL and commit/branch ref.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3563>
2024-02-08 12:59:53 +00:00
Robert Mader
69446e1fb2 meson: Bump wayland-protocols requirement to 1.33
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3450>
2024-01-22 14:20:30 +00:00
Florian Müllner
1037fde087 ci: Update gsettings-desktop-schemas
It is needed to support the new "show-status-shapes" setting
in the shell.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3513>
2024-01-14 17:21:09 +00:00
Florian Müllner
4dbe97a894 ci: Add work-around for podman-push permission issue
For some reason, podman recently started to fail to read files
in non-world-readable directories:

https://gitlab.gnome.org/Infrastructure/Infrastructure/-/issues/1247

As long as it happens with stuff we don't actually need, the
work-around is to just remove the offending files.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3513>
2024-01-14 17:21:09 +00:00
Florian Müllner
3002e18668 ci: Quote package names with parentheses
This is needed by newer versions of the template.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3513>
2024-01-14 17:21:09 +00:00
Bilal Elmoussaoui
5378b10a00 ci: Distribute the new website
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3490>
2024-01-10 19:14:58 +00:00
Florian Müllner
5564eaeb4a ci: Check that gnome-shell can still run
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3387 broke
gnome-shell, let's try to prevent this kind of breakage in the
future by running the gnome-shell test suite during CI.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3510>
2024-01-10 14:36:00 +01:00
Peter Hutterer
ef8b2f2893 ci: Mark our git clone as a safe directory
fatal: detected dubious ownership in repository at '/builds/whot/mutter'
To add an exception for this directory, call:
	git config --global --add safe.directory /builds/whot/mutter

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3434>
2023-12-13 11:09:32 +00:00
Carlos Garnacho
625a7950c4 ci: Add fallback to $CI_COMMIT_TAG for tag pipelines
The script to check out the mutter repository is missing the
case of tag pipelines, and resorts to CI_DEFAULT_BRANCH. Add
a fallback through $CI_COMMIT_TAG, so these pipelines fetch
the expected commit.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3188
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3438>
2023-12-02 22:59:25 +01:00
Robert Mader
59c77da838 ci: Sync GS build options
Copy over build options from the GS CI config.
Notably build with --werror to avoid breaking the GS CI.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3362>
2023-11-03 23:44:45 +00:00
Bilal Elmoussaoui
5088f428ab ci: Keep Mtk sources in the generated coverage
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3321>
2023-10-31 09:56:23 +01:00
Sebastian Wick
6d0d69558e build: Enable libdisplay-info for the default builds
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3116>
2023-09-12 17:53:58 +02:00
Jonas Ådahl
21f3e2a323 build: Bump libei version requirement
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3228>
2023-09-01 10:43:26 +00:00
Bilal Elmoussaoui
765a918a62 build: Add a Meta Toolkit private library
Currently, Meta/Cogl/Clutter makes use of cairo_rectangle_int_t despite
the existance of MetaRectangle.

In order to make MetaRectangle usable in Cogl/Clutter as well, Mtk would
provide such base types that are shared across the various private
libraries

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128>
2023-08-30 16:46:13 +02:00
Florian Müllner
1da1b00de4 ci: Rebase image to F39
F39 has been branched, so we can use it as base of our CI image
and reduce the number of custom built components.

This will also help if gjs adds support for import maps and
gnome-shell bumps its gjs dependency to use it, as F39
already includes the new mozjs version that gjs now uses.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3173>
2023-08-15 00:28:47 +02:00
Florian Müllner
8cca27c831 ci: Use sudo to run meson install
Meson stopped using polkit for automatic priviledge elevation, and
will no longer attempt any priviledge elevation when not running
interactively.

Running the entire install command as root used to be problematic
in the past, as it could result in ownership changes of files in
the build directory that would result in build failures later,
but the aforementioned change leaves us with little choice.

Presumably those issues have been fixed, let's hope that's true.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3173>
2023-08-14 15:05:59 +02:00
Daniel van Vugt
dfdd319041 ci: Don't try running dist-mutter outside of a git repo
Because `meson dist` will fail in that case:
```
Dist currently only works with Git or Mercurial repos
```

Being away from the git repo would only happen on non-marge CI runs of
'deploy' and only if the MR contains meson changes. So the bug went
unnoticed when introduced in !3083 because it didn't contain meson changes.
To fix it we just revert one line of !3083.

Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2908
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3126>
2023-08-07 21:00:01 +00:00
Florian Müllner
9b28b7fcce ci: Include tecla
It is now used by gnome-shell to preview the keyboard layout.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3140>
2023-08-01 18:55:58 +03:00
Florian Müllner
cf3a5da1d5 ci: *Really* fix using image in toolbox
It turns out that gnome-shell's toolbox image is still broken
after commit 86b77f65e7.

Toolbox' entry point ensures that the calling user exists inside
the container, and makes their home available inside the container.

There are two ways the `useradd` command in our image may interfere
with that:

 - by default, useradd uses the smallest available UID in the
   normal user range (usually 1000); this is highly likely to
   clash with the host user UID

 - if the host's /home is a symlink (for instance to /var/home
   on Silverblue), then toolbox recreates that layout inside the
   container; it cannot do that if /home is already a non-empty
   directory

Luckily we can address both issues without affecting the ability
to build and run tests as user: We can simply create the `meta-user`
with a UID and home directory that are unlikely to clash.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3134>
2023-07-23 09:39:18 +00:00
Robert Mader
c45d030132 ci: Temporarily disable aarch64 test
The runners constantly time out for the last two days.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3135>
2023-07-23 01:31:09 +02:00
Jonas Ådahl
e5a35e8802 ci: Build libei 1.0.0 from git
Install libei without tests

Tests drag in extra dependencies that we don't care about and we don't
want to test libei here anyway.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2628>
2023-07-14 22:23:45 +00:00
Florian Müllner
67e7ec1e9d Revert "ci: Temporarily disable kvm test"
KVM runners are back!

This reverts commit 5953e1a24a

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3111>
2023-07-09 21:54:43 +00:00
Jonas Ådahl
84eebbb796 ci: Don't try to change group of /dev/kvm
It's not allowed by the runner.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3111>
2023-07-09 21:54:43 +00:00
Florian Müllner
5953e1a24a ci: Temporarily disable kvm test
The runner has been down for two days, and it is unclear when it
will be up again. Let's not block on a test that fails because
of external factors.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3108>
2023-07-06 11:59:13 +02:00
Marco Trevisan (Treviño)
86b77f65e7 ci: Selectively start mutter images as user by default
Setting up the image with a custom default user broke gnome-shell's
toolbox images. While running tests as non-root user seems like a
good idea, keeping people's development environment working should
be figured out first.

This partially reverts commit 69cc65d15f.

Keep the image to have a local user and use it to run tests so that
we can ensure that permissions are respected

Co-authored-by: Florian Müllner <fmuellner@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3083>
2023-06-27 14:36:54 +00:00
Florian Müllner
5e5065c2b5 ci: Use libadwaita from git
The extensions app now depends on a development version of
libadwaita, so include it in the image.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3081>
2023-06-19 21:11:07 +02:00
Florian Müllner
c8b019a265 ci: Check out virtme-ng tag instead of branch
The upstream branch is gone, so use the corresponding tag instead.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3081>
2023-06-19 21:11:07 +02:00
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