Commit graph

140 commits

Author SHA1 Message Date
Florian Müllner
f0c14bdef3 ci: Also store gvc subproject in artifacts
After the subproject moved to a meson wrap, its checkout is no
longer managed by gitlab.

While meson will take care of checking out required submodules
during setup, this will not happen for `test` or `dist`, so store
the checked out code in artifacts.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3370>
2024-06-13 19:25:50 +02:00
Florian Müllner
9b20c96691 ci: De-duplicate build artifacts
Add an explicit dependency on the `build` job for `dist-tarball`,
so its artifacts are pulled in without re-exporting them from
the `distinfo` job.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3370>
2024-06-13 19:22:41 +02:00
Florian Müllner
92f78a2a06 ci: Use !reference tag for pipeline guard
It's a bit more flexible than yaml anchors, and already used in
mutter for the same purpose.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3370>
2024-06-13 18:17:55 +02:00
Florian Müllner
a9cb754d62 ci: Bump mutter image
Mutter now depends on a newer wayland-server versions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3369>
2024-06-13 14:36:44 +02:00
Jordan Petridis
cbe7c4a677 Revert "ci: Temporarily disable flatpak jobs"
This reverts commit 3e160d7b31

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3359>
2024-06-06 09:34:11 +00:00
Florian Müllner
3e160d7b31 ci: Temporarily disable flatpak jobs
The template currently fails with the deployed gitlab/podman.

Let's not block all merge requests on a job that is only relevant
to the Extensions app, so disable it temporarily until the issue
is sorted.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3358>
2024-06-05 17:05:13 +02:00
Florian Müllner
bc10359f68 ci: Add missing dependency
The job that publishes the flatpak depends on the job that builds
the flatpak ...

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3358>
2024-06-05 13:41:53 +00:00
Jonas Ådahl
22a38c25f2 ci: Don't set GIT_SUBMODULE_STRATEGY anymore
We don't use submodules anymore, so no point configuring the submodule
strategy to use.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3353>
2024-05-31 00:29:09 +02:00
Florian Müllner
d99a1d5457 ci: Bump ci-fairy template
The new version allows @users.noreply email addresses by default,
which seems like something we should allow at least for small
drive-by contributions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3350>
2024-05-28 16:52:10 +00:00
Florian Müllner
1fbfb93cbd ci: Hook up release-module
In the future, the module will automate uploading the release
tarball. We already use the CI pipeline to generate the tarball,
so it's easy to hook up the module and provide some testing
before the module goes into production.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3340>
2024-05-24 21:42:01 +00:00
Florian Müllner
27445a1c98 ci: Use meson introspect to generate artifact path
We currently assume that the `CI_COMMIT_TAG` variable matches the
version component of the generated dist tarball.

That is usually correct, but sometimes errors happen and a wrong
tag is pushed, and the real release uses something like "46.0-real".

Account for that by building the artifact path from `meson introspect`
and exporting it as environment variable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3340>
2024-05-24 21:42:01 +00:00
Florian Müllner
0d3c298c70 ci: Bump mutter image
Mutter bumped its wayland-protocols dependency, so update the
image to pull it in.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3337>
2024-05-22 20:53:42 +02:00
Florian Müllner
372dfc5f75 ci: Include subprojects in tarball
jasmine-gjs isn't widely available in distributions, so instead
of adding an obscure build dependency, include the subproject
in the tarball.

The --include-subprojects flag only applies to subprojects that
are used in the build, so we do not bundle gi-docgen that is
provided in the mutter image.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3164>
2024-05-21 13:42:28 +00:00
Florian Müllner
151e2faa0f build: Set up jasmine for unit testing
Jasmine[0] is a popular testing framework for javascript, which
gjs itself has used in a heavily customized form for its own
unit tests for years.

It's far superior to the very rudimentary `jsUnit` module that
is still included with gjs, and the jasmine-gjs project provides
a general-purpose wrapper for gjs apps.

Set up the necessary build infrastructure to run unit tests
through jasmine. That allows for existing unit tests to be
ported one-by-one.

[0] https://jasmine.github.io/index.html

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3164>
2024-05-21 13:42:28 +00:00
Jonas Ådahl
f31099cd85 ci: Run tests with the timeout multiplier set to 5
Sometimes the test runners are saturated with other work. Bump the test
timeouts by a multiplier of 5 with the hope that they now will be much
more likely to have time to finish in time.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3299>
2024-05-03 16:01:48 +02:00
Sebastian Keller
80a37bcf53 js: Update for Gio/GioUnix split
GLib 2.79.2 split out the platform specific Gio APIs into a separate
GIRs, while still keeping a copy in the Gio GIR. gjs then added warnings
about the APIs being moved.

This bumps the Gio(Unix) version requirement to 2.79.2 and switches to
using the new GioUnix GIR.

See: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3892
See: https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/918
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7539
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3288>
2024-04-29 16:48:07 +02:00
Florian Müllner
6f250dd4dc ci: Rebase image to F40
After the main image was rebased, let's do the same for our
JS tooling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3208>
2024-02-25 22:06:46 +00:00
Florian Müllner
36754d0479 ci: Don't install entire Development group
With dependencies, the group pulls in about 150 packages. We only
need a tiny tiny subset of that, so only specify what we really
need to not blow up the image size unnecessarily.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3208>
2024-02-25 22:06:46 +00:00
Florian Müllner
19592e0a67 ci: Bump mutter image
The image was rebased to f40, pull that in.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3208>
2024-02-25 22:06:46 +00:00
Florian Müllner
d15f6c75b1 build: Bump gsettings-desktop-schemas requirement
Needed for the `xkb-model` and `show-status-shapes` settings.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3191>
2024-02-14 21:14:32 +01:00
Florian Müllner
a7e93f3af2 ci: Bump mutter image
The new image no longer includes the development version of glib,
which provides a newer API version of GIRepository that breaks
gjs' package module.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3181>
2024-02-11 02:15:34 +01:00
Florian Müllner
d3e96a36ce ci: Do not create pipelines for branches with open MRs
Pipelines for non-protected branches are set to 'manual', and
thus cheap. However they may still get picked by `@marge-bot`,
meaning that the bot waits for the completion of a pipeline that
never starts.

Avoid that by not creating pipelines for branches with open
merge requests.

Credit to Jordan, who came up with this for gst.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3153>
2024-01-30 17:15:33 +00:00
Florian Müllner
a6d35fdd2a ci: Check snippets in coding style
To avoid having the coding style get out of sync with the actual
coding style in the future, run eslint on the individual snippets
when either the guide or the linter config change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3146>
2024-01-27 18:18:23 +00:00
Florian Müllner
876ca5d2de ci: Bump mutter image
Mutter's wayland-protocols dependency has been bumped, so pull
in the updated image that satisfies it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3136>
2024-01-23 12:49:23 +01:00
Florian Müllner
2df9b025eb ci: Bump mutter image
... to pull in an up-to-date gsettings-desktop-schemas version.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3107>
2024-01-17 04:30:11 +00:00
Florian Müllner
c0db83672e ci: Fix publishing docs
The originally merge request predates the switch to `main` as
the default branch name (by a mere week!).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3054>
2023-12-14 17:53:38 +01:00
Zander Brown
12eb7aa506 ci: Build docs in CI
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1873>
2023-12-13 14:52:48 +01:00
Florian Müllner
b3ce7be8f3 ci: Bump mutter image
Mutter bumped its libei requirement.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2934>
2023-09-01 16:47:38 +02:00
Florian Müllner
cc8a5934d7 ci: Rebase js image to F39
F39 has been branched, so use it to pull in the latest gjs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2912>
2023-08-26 18:03:25 +00:00
Florian Müllner
8f8ee64b67 ci: Escape parentheses in dependencies
Newer versions of the freedesktop template no longer do the
escaping for us.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2912>
2023-08-26 18:03:25 +00:00
Florian Müllner
7823216524 ci: Bump mutter image
The mutter image has been rebased to F39, start using it here
as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2892>
2023-08-16 22:30:39 +00:00
Florian Müllner
d353f2d367 ci: Use sudo to run meson install
Meson stopped using polkit for automatic privilege 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.

Apparently `meson install` will spawn `ninja` with dropped
privileges when a rebuild is needed, so hopefully this will
no longer be an issue.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2892>
2023-08-16 22:30:39 +00:00
Florian Müllner
8af9edf14e ci: Remove eslint_mr job
There is no longer a difference between regular- and legacy config.
That means that all code now follows the regular configuration, and
we no longer need a separate check that enforces this for new code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2866>
2023-08-09 15:10:38 +00:00
Florian Müllner
7b139b00f3 Bump mutter image
Pull in tecla and pipewire fixes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2855>
2023-08-02 14:20:22 +02:00
Florian Müllner
8238533418 ci: Make meson warnings fatal
The Config variable that was removed in the previous commit was
actually wrong (PACKAGE_VERSION vs. GETTEXT_VERSION), so the
substituation didn't work.

Meson warns about this, let's make these warnings fatal to catch
similar issues during CI.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2844>
2023-07-23 15:36:20 +02:00
Florian Müllner
fc14fb8503 ci: Bump mutter image
Ever since the mutter image started to set up a non-root user for
running tests, the toolbox image built on top of it has been broken.

The issue has now been addressed, so update the image to pull in
the fix.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2850>
2023-07-23 11:42:56 +00:00
Florian Müllner
3c9857abad ci: Bump mutter image
Eieiei, mutter now depends on libei.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2846>
2023-07-15 03:27:22 +02:00
Florian Müllner
3a086c43ae ci: Print eslint results to stdout as well
The eslint jobs report their results as artifacts in junit format,
so that gitlab can present them in its UI.

However many people miss that, and unsuccessfully check the logs
instead.

Account for that by also printing the results to stdout.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2829>
2023-07-10 10:19:34 +00:00
Florian Müllner
1b974beec5 ci: Bump mutter image
Mutter stopped hardcoding a non-default user in the image, and
instead wraps its CI tests to run as user. Pull in that image
to hopefully get over some of the recent CI hickups.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2813>
2023-06-28 23:44:52 +02:00
Florian Müllner
761db49137 ci: Bump mutter image
The updated image contains a recent enough libadwaita version to
run the extensions app after commit 38243410.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2805>
2023-06-19 23:39:20 +00:00
Evan Welsh
39ed7f83fd ci: Migrate eslint-plugin-jsdoc rule and pin eslint versions
Pin eslint to v8 and eslint-plugin-jsdoc to v46, migrate the removed
jsdoc rule.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2792>
2023-06-07 18:20:50 +00:00
Florian Müllner
4335c1a92a ci: Bump mutter image
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2772>
2023-05-19 16:40:18 +02:00
Florian Müllner
a837285ae3 ci: Produce toolbox images
Toolbox is a convenient option for development, but setting up
the image with all dependencies is annoying at best, in particular
later in the cycle when `dnf builddep` is likely insufficient.

To address that, produce toolbox images for main and stable branches
that are based on the regular CI image, and update them whenever
the image version is updated. This guarantees that all build- and
runtime dependencies are included.

Unsurprisingly, the script that produces the image draws heavily
from freedesktop's ci-templates. The most notable difference
(other than being neither distro-agnostic nor generic) is that
tag names are fixed (toolbox:main, toolbox:43 etc.) to make them
easier to consume.

Instead, whether an image needs rebuilding is based on a custom
label that records the base image that was used.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>
2023-05-16 18:20:42 +00:00
Florian Müllner
0a420404c6 ci: Update JS tooling
Provided we use the correct version of the SpiderMonkey shell, we
can perform checks using the same engine that is used by gjs.

However some engine features are opt-in, so the set of features enabled
by gjs and js102 may differ. The obvious option for avoiding this is
replacing js102 with gjs for tests.

For that reason the check-potfiles.js script has been ported to gjs
and a second (simpler) script to replace `js102 --compileonly` was
added. This work happened in a separate repository to make sharing
between different JS-based projects easier.

Update the CI image to pull in those scripts and include gjs.

This will also address the issue that `js102 --compileonly` does not
handle modules.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2193>
2023-04-21 18:28:32 +00:00
Florian Müllner
ddae41456d ci: Remove duplicated cleanup
The template will already call `dnf clean all` after processing
packages and the script, so no need for us to call it as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2193>
2023-04-21 18:28:32 +00:00
Florian Müllner
f54af2639d ci: Update JS image
The image hasn't been updated for over a year, and it's now based
on an unsupported distro version. Jump directly to F38 which has
just been released.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2695>
2023-04-21 12:45:18 +00:00
Florian Müllner
5a7ba105c4 ci: Drop version suffix from job name
We don't build images for multiple distro versions, so all it does
is making version bumps more finicky.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2695>
2023-04-21 12:45:18 +00:00
Florian Müllner
ea629cabbf ci: Make fringe meson-install arguments optional
Both the subdir and prepare arguments are very specific to
building the extensions-tool subproject stand-alone. In order
to make the script more generic, turn those required arguments
into optional --subdir and --prepare ones.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2712>
2023-04-20 15:59:56 +00:00
Carlos Garnacho
279585c555 ci: Update image
This is necessary to get the gnome-desktop4 and libnma-gtk4
dependencies.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2655>
2023-03-03 20:38:03 +00:00
Carlos Garnacho
95e1f760cb ci: Update base image
Mutter main updated its image for a glib dependency bump. Update
gnome-shell CI too.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2618>
2023-01-31 12:54:19 +01:00