Commit Graph

243 Commits

Author SHA1 Message Date
Matthias Clasen
92804b5b55 Drop the duplicate x11 testsuite run
We currently run the testsuite against x11 in both
the debug and release builds. Once ought to
be enough.
2023-05-11 08:52:48 -04:00
Matthias Clasen
87e7ea6080 ci: Balance the work between jobs
The fedora-x86-64 build does not only build with debug,
it also does the hello build, and it runs the testsuite
multiple times.

Move the hello build to the fedora release build. The idea
is that this lets us do more work in parallel, and spend
less time waiting for the longest-running ci job.
2023-05-11 08:39:38 -04:00
Matthias Clasen
b1945b38e8 ci: Drop the broadway test run
We are ignoring failures here, and nobody is working
on fixing them. And the failures end up at the end
of the log, adding annoyance to finding the actual
failures.
2023-05-11 08:34:14 -04:00
Matthias Clasen
c9b0ca0de7 ci: Improve headless test logging 2023-05-06 09:02:25 -04:00
Matthias Clasen
f81aa14d93 Merge wayland_smalltexture and wayland_gles
We don't really need to have two full separate
test runs for these conditions, so combine them
into one test setup.
2023-05-04 15:13:09 -04:00
Matthias Clasen
37fb370a5d ci: Remove the hack 2023-05-03 22:32:00 -04:00
Matthias Clasen
1cc9413383 ci: Use newer meson 2023-05-03 20:18:58 -04:00
Matthias Clasen
bfea39ab2f ci: Add meson back to the fedora image 2023-05-03 20:18:58 -04:00
Matthias Clasen
84d6f023b5 ci: Add pipewire-gstreamer too 2023-05-03 20:18:58 -04:00
Matthias Clasen
7fe04a7122 ci: Add pipewire to the image
And its buddy, wireplumber.

But we don't need gnome-desktop-testing
anymore, now that installed tests are gone.
2023-05-03 20:18:58 -04:00
Matthias Clasen
d17ca6b451 ci: Stop running the unstable test setups
This is just duplicating all our test runs,
for no discernible gain.
2023-05-03 15:11:53 -04:00
Matthias Clasen
5bac4f13a0 ci: Add mutter to the fedora image
This is in preparation for trying to use mutter --headless
in ci.
2023-05-01 21:11:01 -04:00
Jordan Petridis
679657cc0f ci: Use Fedora 38 as the base 2023-03-20 16:16:24 +02:00
Matthias Clasen
942c8eec73 ci: Make reports for all setups 2023-03-19 10:21:19 -04:00
Matthias Clasen
e7bb7785fa testsuite: Improve setup name consistency
Rename the 'waylandgles' test setup to 'wayland_gles'.
2023-03-19 10:19:00 -04:00
Matthias Clasen
9705ccbe2f ci: Run tests with small textures 2023-03-19 10:16:19 -04:00
Emmanuele Bassi
864fbf89cd ci: Update image
Refresh the Fedora base (still at 37), and add the Python packaging
module for gi-docgen.
2023-02-17 12:24:09 +00:00
Jordan Petridis
7b4692bcb0 ci: Add a simple auto-retry policy 2023-02-15 21:38:24 +02:00
Jordan Petridis
f0a2b6f165 ci: Build and publish aarch64 flatpaks
Close GNOME/gtk#5594
2023-02-15 21:19:56 +02:00
Jordan Petridis
2dc6efd9ce ci: Switch from only/except to rules: keyword
It's more flexible and allows us to combine the flatpak jobs
2023-02-15 21:10:40 +02:00
Benjamin Otte
073c836f96 CI: Don't run style-check-diff by default
We don't use it most of the time and it's also confusing to new contributors who think it's important to fix it.

Keep it for manual runs, so that interested people can just click a button to see the results. It also makes it easy to turn back on later.
2023-02-14 23:53:02 +00:00
Matthias Clasen
b7c422cb98 ci: Stop running the asan build every time
It fails because of address sanitizer crashes,
and takes a long time. It is not that useful
in this shape.
2023-02-02 09:07:10 +01:00
Matthias Clasen
96ce9e10b8 Merge branch 'faster-ci' into 'main'
Add a build-testsuite option

See merge request GNOME/gtk!5419
2023-01-13 12:57:15 +00:00
Matthias Clasen
3090795351 ci: Try to speed up builds a bit
Don't build demos and tests, and only build
the testsuite where we want to run it.
2023-01-13 07:26:41 -05:00
Benjamin Otte
7ae549e253 CI: turn on -Werror for MacOS build
The build is error-free and we want to keep it that way.

We'd also like to make Timm do real work instead of having to fix clang
warnings all the time and this build is a clang build.
2023-01-12 20:12:37 -05:00
Benjamin Otte
de271c9a30 ci: Disable -Werror on all subprojects
Would be nice if meson had a nicer way of doing this, but...
2023-01-06 19:46:58 -05:00
Matthias Clasen
5a68639788 ci: Enable introspection for the docs build
It is required, so lets not rely on defaults.
2023-01-02 11:27:22 -05:00
Matthias Clasen
5df0cbfa69 ci: Disable f16c for asan
It appears that f16c crashes asan instantly.
2022-12-20 00:43:59 -05:00
Matthias Clasen
ee2152ff5c ci: Mark macos build as allow-fail
It fails too often, and it never does us
any good.
2022-12-19 23:55:13 -05:00
Emmanuele Bassi
ca0bae2196 ci: Don't cache subprojects
We're downloading them anyway.
2022-12-20 02:41:52 +00:00
Emmanuele Bassi
2b808bf849 ci: Remove installed-tests job
Installed tests require access to the system prefix, and thus a
system-wide installation of Meson, which we don't have.

We're going to restore this job at a later date.
2022-12-20 01:56:28 +00:00
Emmanuele Bassi
cf709473f7 ci: Update the Fedora image 2022-12-20 01:54:57 +00:00
Nirbheek Chauhan
64c8da1bdd ci: Always update subprojects to latest revision
Otherwise we're not actually updating anything. `meson subprojects
download` will skip subprojects that already exist.
2022-12-19 09:08:28 +05:30
Nirbheek Chauhan
7242408d60 ci: Fix fedora-mingw64 job 2022-12-19 03:09:11 +05:30
Emmanuele Bassi
a2b00f7ea7 ci: Install tests in a separate prefix
Avoid using `sudo` in the installed-tests CI job, since we're installing
Meson as the current user.
2022-12-14 19:02:23 +00:00
Emmanuele Bassi
7fca091371 ci: Redefine PATH 2022-12-14 18:39:34 +00:00
Emmanuele Bassi
cd7627ed02 ci: Consistently use meson subcommands
meson setup:
  configuration
meson compile:
  compilation
meson install
  installation

Do not use ninja directly, and do not use `meson` as a synonym for
`meson setup`.
2022-12-14 17:44:27 +00:00
Emmanuele Bassi
6e0def6474 ci: Install Meson in the build jobs
We use the latest 0.64 even if we depend on 0.60 because of fixes in the
subproject command.
2022-12-14 17:13:03 +00:00
Emmanuele Bassi
a8cd2750f7 ci: Download the subprojects
Updating the subprojects will apparently fail if they haven't been
downloaded.
2022-11-26 15:18:42 +00:00
Emmanuele Bassi
5419f1f2f0 ci: Update the gi-docgen dependencies
The python3-toml package is deprecated, and replaced by python3-tomli.
At least, until we bump up the dependency to Fedora 37: then we can
depend on Python 3.11, and its TOML parser in the standard library.

See also: https://gitlab.gnome.org/GNOME/gi-docgen/-/merge_requests/168
2022-11-25 17:50:21 +00:00
Simon McVittie
957dd49ef7 testsuite: Use separate setups for unstable tests instead of should_fail
There are two possible interpretations of "expected failure": either
the test *must* fail (exactly the inverse of an ordinary test, with
success becoming failure and failure becoming success), or the test
*may* fail (with success intended, but failure possible in some
environments). Autotools had the second interpretation, which seems
more useful in practice, but Meson has the first.

Instead of using should_fail, we can put the tests in one of two new
suites: "flaky" is intended for tests that succeed or fail unpredictably
according to the test environment or chance, while "failing" is for
tests that ought to succeed but currently never do as a result of a
bug or missing functionality. With a sufficiently new version of Meson,
the flaky and failing tests are not run by default, but can be requested
by running a setup that does not exclude them, with a command like:

    meson test --setup=x11_unstable --suite=flaky --suite=failing

As a bonus, now that we're setting up setups and their excluded suites
programmatically, the gsk-compare-broadway tests are also excluded by
default when running the test setup for a non-broadway backend.

When running the tests in CI, --suite=gtk overrides the default
exclude_suites, so we have to specify --no-suite=flaky and
--no-suite=failing explicitly.

This arrangement is inspired by GNOME/glib!2987, which was contributed
by Marco Trevisan.

Signed-off-by: Simon McVittie <smcv@debian.org>
2022-11-24 13:46:33 +00:00
Matthias Clasen
2cef677aef ci: Require macos to build again 2022-10-28 21:39:13 -04:00
Matthias Clasen
a2e2673809 ci: Try to fix the macos build
It seems that libjpeg-turbo first finds nasm,
and then doesn't find it. Turn off simd to keep
it from looking for it in the first place.
2022-10-28 21:07:58 -04:00
Matthias Clasen
a06a4ad59a ci: Allow macos builds to fail
The runner seems busted, so allow builds to fail
for now.
2022-10-11 13:43:36 -04:00
Emmanuele Bassi
821dd26934 ci: Move style check to its own stage
Drop the `.pre` phase.
2022-09-10 00:16:12 +01:00
Marc-André Lureau
63dce34396 ci: add fedora-mingw64 job
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-08-18 11:45:21 +04:00
Carlos Garnacho
6a7136d5fb ci: Disable -Werror on wayland submodule
CI is mostly interested in GTK not introducing compiler warnings, other
submodules like Wayland might have their own and that shouldn't hinder
CI testing of GTK.

Disable -Werror for the wayland submodule, and let it be fixed independently
at some point.
2022-08-10 16:37:17 +02:00
Matthias Clasen
81a65690f8 Merge branch 'alatiera/node-flatpak' into 'main'
flatpak: add a NodeEditor demo

See merge request GNOME/gtk!4898
2022-07-28 18:08:47 +00:00
Bartłomiej Piotrowski
ea21923932 Update (or drop) the Docker image used by Flatpak job
The gnome-runtime-images have been recently migrated to Quay. This is already reflected in the template.

Please note this MR has been created semi-automatically. If it doesn't make sense, feel free to close it.
2022-07-27 12:47:50 +02:00
Jordan Petridis
f99880a74a flatpak: add a NodeEditor demo 2022-07-25 15:38:55 +03:00
Emmanuele Bassi
35808a918d ci: Force the fedora image for the publish-docs job
Otherwise every CI runner might decide to use a different default
image, and we'll end up on one that doesn't have curl.
2022-06-28 21:32:08 +01:00
Christoph Reiter
2f695388e9 CI: bump meson version from 0.59 to 0.60.3
We pull in glib main via a submodule in CI and glib has recently
bumped its meson requirement to >= 0.60:
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2641

Install 0.60.3 where needed to make things build again.
2022-05-22 11:46:54 +02:00
Benjamin Otte
e8eb96ae0c CI: Include reftest nodes in artifacts 2022-05-18 19:54:34 +02:00
Matthias Clasen
aa9a8702e4 ci: Update the Fedora image to Fedora 36
Also remove systemtap from the image, since
we don't need it.

The v36 image is still used in gtk-4-6.
2022-05-14 12:23:02 -04:00
Guido Günther
ee8970f23d ci: Only use letters in "expose_as" 2022-01-19 18:51:29 +01:00
Guido Günther
46f1e4c414 ci: Put gtk dll into an archive
This avoids the wild card that makes the CI fail
2022-01-19 18:51:16 +01:00
Luca Bacci
8c2128703b Merge branch 'provide-libgtk-dll-as-ci-artifact' into 'main'
Provide GTK DLL as GitLab CI artifact

See merge request GNOME/gtk!4395
2022-01-19 11:17:28 +00:00
Luca Bacci
b2d9cae0ec Provide GTK DLL as GitLab CI artifact 2022-01-19 11:17:28 +00:00
Jonas Ådahl
66ebc660b4 wayland/surface: Use wl_surface_offset() instead of x,y of attach()
This makes the hotspot of DND surfaces work when using the Vulkan and
OpenGL renderers.

This bumps the CI image used to the newly built image. This is needed to
install a new enough libwayland-client.so needed for wl_surface.offset.

This is done by adding wayland as a meson subproject, building it
on-demand if the version in the system is not new enough. As
libwayland-client.so is pulled in implicitly when linking to gtk4, the
compile step needs LD_LIBRARY_PATH set to make ld find the right library
to link to.
2022-01-14 09:27:07 +01:00
Matthias Clasen
cfac6fd752 ci: Use meson 0.59 on macos 2021-12-10 12:12:52 -05:00
Matthias Clasen
ddd5704c92 Update references to master in the repository 2021-11-29 17:37:49 -05:00
Matthias Clasen
bc80eb616d Revert "ci: Allow macos to fail"
This reverts commit b7cab5c5eb.

We welcome the macos runner back.
2021-11-01 10:33:09 -04:00
Matthias Clasen
b7cab5c5eb ci: Allow macos to fail
The macos runner is out of commission atm
2021-10-18 11:00:27 -04:00
Benjamin Otte
e581c148d9 testsuite: Add run for GLES
This is supposed to test the most fallback GL stuff, so we might want to
set even more env vars here.

Also enable the run for the Fedora builder in CI.
2021-10-09 06:27:21 +02:00
Emmanuele Bassi
c317a1b7c4 ci: Update the Docker image to use 2021-09-24 19:00:09 +01:00
Matthias Clasen
c70fdd6331 ci: Use the v4 image 2021-09-14 08:06:09 -04:00
Matthias Clasen
d757696116 ci: Add libjpeg-turbo-devel to the Fedora image
This was getting downloaded from sourceforge every
time for the docs build, and that started failing.
2021-08-10 08:22:52 -04:00
Emmanuele Bassi
316cc55e69 ci: Trigger a pages build
Do not publish the API reference directly, but trigger a CI pipeline for
the docs-gtk-org branch, which will then do the publishing.
2021-07-31 17:13:27 +01:00
Matthias Clasen
05eaffb9f2 ci: Collect tools test output
This should help understanding why some of them fail.
2021-07-28 22:42:46 -04:00
Benjamin Otte
9f6fb161e2 build: Set proper defaults for media backends
GTK supports webm playback, which means a backend should always be
compiled.

The ffmpeg backend however is incomplete (no audio) and as such, we
don't want people to end up with it accidentally.

Since we don't want to drag an entire gstreamer build into our ci
on MacOs or msvc, explicitly disable the gstreame media backend there.
2021-07-20 14:00:25 -04:00
Matthias Clasen
fb052c8d25 ci: Build Broadway on MacOS
We've seen a build failure if Broadway is built without
the X11 backend. Lets recreate that configuration in ci
so it doesn't break again.
2021-06-18 06:09:14 -07:00
Matthias Clasen
193903ce4a ci: Update the image
v32 of the image includes wayland-protocols 1.21, and
other updates from Fedora 34.

While we are at it, drop gtk-doc from the image, and drop
the separate DOCS_IMAGE - no longer used.
2021-06-09 08:42:37 -04:00
Matthias Clasen
386002597b ci: Collect hello build logs 2021-06-09 08:42:30 -04:00
Matthias Clasen
e5a6d4a1c8 ci: Test building against installed GTK
This is meant to ensure that we e.g. install the
right header files, and so on.
2021-06-09 08:42:30 -04:00
Matthias Clasen
497b843e76 ci: Add clang-extra-tools to the image
Hurray for bite-size packages! Splitting
this off broke our style check in ci.
2021-05-10 08:52:12 -04:00
Matthias Clasen
c8eeb46aa5 Merge branch 'update-ci-to-f34' into 'master'
WIP ci: Update the image to Fedora 34

See merge request GNOME/gtk!3516
2021-05-05 23:17:07 +00:00
Matthias Clasen
de056a3319 ci: Show OS release for our containers 2021-05-05 16:22:32 -04:00
Xavier Claessens
d8f44c06e8 ci: Add MSVC build
This script is copied from glib CI.
2021-05-05 09:16:36 -04:00
Matthias Clasen
24072f26ca ci: Update the image to Fedora 34
This is in preparation to using mutter --headless
for tests.
2021-05-05 08:17:26 -04:00
Emmanuele Bassi
ed412f43d1 ci: Drop the split Fedora images
Now that we don't need the whole of Pandoc to build our documentation,
we can go back to a single Fedora image for our CI.
2021-04-09 12:28:08 +01:00
Emmanuele Bassi
f1b3492700 ci: Add missing graphviz dependency
We generate the hierarchy graph for GTK types, and in order to do so, we
need the dot utility from graphviz in the CI image.
2021-03-30 21:08:43 +01:00
Emmanuele Bassi
0560397aa8 ci: Build Pango and GdkPixbuf's docs
We want to publish them alongside GTK's own API reference.
2021-03-23 13:13:53 +00:00
Emmanuele Bassi
1763ede9ce Add a landing page for the GitLab pages root
Right now, we land inside a 404 if we go to:

  https://gnome.pages.gitlab.gnome.org/gtk/

as we have all our API references in a sub-level. We should have a
landing page for the root, similar to developer.gnome.org/references/.
2021-03-19 13:54:32 +00:00
Emmanuele Bassi
787830d360 ci: Update the CI image for docs building
We don't use Pandoc any more, but we need a bunch of Python modules for
gi-docgen.
2021-03-11 16:37:29 +00:00
Emmanuele Bassi
4018417ceb ci: Update the reference job 2021-03-11 16:37:29 +00:00
Matthias Clasen
b1c1e02c28 ci: Add debug spew on macos 2021-02-12 15:24:27 -05:00
Bartłomiej Piotrowski
0ce0402edf Revert "Merge branch 'disable-macos-ci' into 'master'"
This reverts merge request !3183
2021-02-12 19:40:57 +00:00
Matthias Clasen
0a3fa40923 ci: Update the Fedora image to F33 2021-02-11 22:02:39 -05:00
Matthias Clasen
8cd4b338db ci: Temporarily disable macOS CI job as runner is offline
See https://gitlab.gnome.org/Infrastructure/GitLab/-/issues/495
2021-02-10 19:50:17 -05:00
Matthias Clasen
b37a69d76c ci: Add mesa-libGLES-devel
Try again, since libglvnd-devel is not the right choice.
2021-01-29 12:55:46 -05:00
Matthias Clasen
454caa3eec ci: Use v26 of the Fedora image
This includes libglvnd-devel and should fix using the
gstreamer gl support.
2021-01-29 11:14:54 -05:00
Emmanuele Bassi
195b98f19a ci: Only run macOS job on upstream branches
Don't run CI on macOS for forks.
2021-01-07 16:14:04 +00:00
Emmanuele Bassi
87e0a28482 ci: Specify only for other jobs
Otherwise MRs will only run macOS jobs.
2021-01-07 16:13:59 +00:00
Matthias Clasen
0336af06f1 ci: Limit macos runs
We are building the full stack here, which is pretty expensive,
so only do it for merge requests and master.
2021-01-06 09:36:54 -05:00
Matthias Clasen
0c8124828f ci: Disable pixman tests on MacOS
The pixman tests fail to build, and I don't have
the stamina to fix all sub-sub-projects, so just
disable the tests.
2021-01-03 21:34:04 -05:00
Matthias Clasen
0605c3c167 ci: Fix the harfbuzz build on MacOS
We need to force c++11 at the toplevel here, since
meson can't deal with per-project compiler choice.
2021-01-03 21:34:04 -05:00
Matthias Clasen
45bb4dc80c ci: Add a macos build
Most of this is cribbed from glib.

We don't use COMMON_MESON_FLAGS here, since disabling
-Werror one subproject at a time is too painful for
all the promoted sub-sub-projects. This needs a better
solution in meson.

Since this is a full rebuild of the entire stack, limit
this to master and merge requests.
2021-01-03 21:34:04 -05:00
Jordan Petridis
fe690265eb
ci: publish demo apps to the Nightly repository 2020-11-13 20:38:09 +02:00
Emmanuele Bassi
4b60e7470a Use test AT context with installed tests
Otherwise we're going to need an AT-SPI service on the session, and the
accessibility bus.
2020-10-12 16:19:31 +01:00
Matthias Clasen
6e7c0ce06b ci: Give up on sysprof for now
Using sysprof and glib as subprojects of the same
project sadly does not work. Subprojects are not
as robust as they should be.
2020-10-01 07:37:44 -04:00