Add Wayland to build matrix on GitHub actions
Add a compositor type build matrix entry for wayland, xwayland and x11.
There are a total of 6 combinations possible of GTK/compositor:
- GTK3 x11 (uses Xvfb)
- GTK3 Xwayland (uses xwayland under weston headless)
- GTK3 wayland (uses weston headless)
- GTK4 x11 (uses Xvfb)
- GTK4 Xwayland (uses xwayland under weston headless)
- GTK4 wayland (uses weston headless)
When using Xwayland, the GDK_BACKEND can be either x11 or wayland. For the other two cases the two need to match.
This commit enables 5 new configuration options to build, with "GTK3 x11 (uses Xvfb)" being the pre-existing one. It is expected a future commit will start limiting how many of these run for all PRs.
Part of https://github.com/eclipse-platform/eclipse.platform.swt/issues/2714
In draft until dependent PR https://github.com/eclipse-platform/eclipse.platform.swt/pull/2767 is merged.
On most recent Ubuntu/Fedora/etc. distros users get Wayland session by default thus I would say that even on Gtk3 Wayland has become the most common setup.
I am open to whatever collection of backends/gtk versions. For now this PR tests as before plus GTK4 on wayland. We could enable all 6 - I don't want to overwhelm the number of builds that run if it isn't valuable enough.
@akurtakov I split out the question of which combinations to exclude to a future commit - this PR tests all of the valid combinations. Comment 0 and commit message updated.
Test Results
176 files +29 176 suites +29 27m 5s ⏱️ + 3m 36s 4 670 tests ± 0 4 648 ✅ ± 0 22 💤 ±0 0 ❌ ±0 481 runs +70 475 ✅ +69 6 💤 +1 0 ❌ ±0
Results for commit 5e423482. ± Comparison against base commit 4583376a.
:recycle: This comment has been updated with latest results.
The JVM crashes are a corner case that I will workaround because IMHO they are bugs in GTK not in SWT: https://github.com/eclipse-platform/eclipse.platform.swt/issues/2853
I have given up - for now at least - getting tests reliable on gtk3+wayland. As it turns out GTK3 itself is only tested on x11. GTK4 is tested on x11, wayland, and broadway.
I have therefore excluded the gtk3/wayland combination and I open this up for review now.
I plan to merge this soon if there are no objections.
Only thing left is to update commit message to reflect final state. I will do that when I rebase it on top of https://github.com/eclipse-platform/eclipse.platform.swt/pull/2764
I updated commit messages and the original PR comment https://github.com/eclipse-platform/eclipse.platform.swt/pull/2768#issue-3613631502