summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
Commit message (Collapse)AuthorAgeFilesLines
* Implement wp_single_pixel_buffer_v1 protocolDaniel Stone2022-07-261-1/+1
| | | | | | | | | | | This protocol allows clients to create single-pixel RGBA buffers. Now that we have proper support for these buffers internally within Weston, we can expose them to clients. This bumps the build container version, as we now depend on wayland-protocols v1.26. Signed-off-by: Daniel Stone <daniels@collabora.com>
* compositor: deprecate cms-static and cms-colord pluginsPekka Paalanen2022-07-061-0/+2
| | | | | | | | | | | | | | While developing the new color management, keeping these old plugins working would require extra work. Let's deprecate these to see if anyone cares about them, pending removal after the Weston 11.0.0 release. CI will keep building these in the "Full build" configuration only. Doc and no-GL builds are no different for these plugins, so there these are no longer built. See https://gitlab.freedesktop.org/wayland/weston/-/issues/634 Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
* CI: Disable ASan fast unwinding for suppressionsDaniel Stone2022-07-051-1/+1
| | | | | | | | | | | | | | Unfortunately just adding suppressions isn't enough; the build of Expat we have in our CI system does not have frame pointers, so ASan's fast unwinder can't see through it. This means that the suppressions we've added won't be taken into account. For now, disable the fast unwinder for the Xwayland test only. Disabling it globally is not practical as it massively increases the per-test runtime, so here (to avoid polluting the build system), we use a per-test wrapper to selectively choose the unwinder. Signed-off-by: Daniel Stone <daniels@collabora.com>
* doc/sphinx/doxygen.ini.in: Remove CLASS_DIAGRAMMarius Vlad2022-07-011-1/+1
| | | | | | | | | | CLASS_DIAGRAM has been obsolete in newer version of doxygen, and it's enabled if HAVE_DOT and CLASS_GRAPH are set. This increase DOT_GRAPH_MAX_NODES to avoid dot complaning, and include dot/graphviz for doxygen. Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
* gitlab-ci: build libdrm version 2.4.108 from sourceLuigi Santivetti2022-06-071-1/+1
| | | | | | | | | libdrm with version 2.4.108 provides new functionality for parsing IN_FORMATS blobs. Weston can make use of it and avoid implementing its own logic. At present CI uses Debian 11 (bullseye) which comes with an older version (2.4.104), so we build it from source. Signed-off-by: Luigi Santivetti <luigi.santivetti@imgtec.com>
* ci: Fix cobertura syntaxDerek Foreman2022-06-061-1/+3
| | | | | | | This has somehow stopped working. Copied different syntax from a gitlab example. Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
* libweston: remove fbdev backendPekka Paalanen2022-03-151-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fbdev backend was deprecated in the Weston 10.0.0 release with 6338dbd5816689b2f08f48b359a972e16ff038d8. Before that, I suggested already in 2019 to remove it, but it was too soon then. Now it seems the final voices asking for fbdev to be kept have been satisfied, see the linked issue. Fbdev-backend uses a kernel graphics UAPI (fbdev) which is sub-par for a Wayland compositor: you cannot do GPU accelerated graphics in any reasonable way, no hotplug support, multi-output support is tedious, and so on. Most importantly, Linux has deprecated fbdev a long time ago due to the UAPI fitting modern systems and use cases very poorly, but cannot get rid of it if any users remain. Let's do here what we can to reduce fbdev usage. I am doing color management related additions to libweston which require adding checks to every backend. One backend less is less churn to write and review. Libweston major version has already been bumped to 11, so the next release will be Weston 11, without fbdev. enum weston_compositor_backend entries change their numerical values. Fixes: https://gitlab.freedesktop.org/wayland/weston/-/issues/581 Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
* launchers: remove launchersDerek Foreman2022-03-031-2/+0
| | | | | | | | | | | | | | Moving forward we're going to be supporting libseat and logind as our only launchers. We're doing this to reduce our maintenance burden, and security impact. Libseat supports all our existing use cases, and seatd can replace weston-launch so we no longer have to carry a setuid-root program. This patch removes weston-launch, and launcher-direct, leaving only libseat and logind. Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
* gitlab-ci: compile Linux image with support to VGEMLeandro Ribeiro2022-02-091-1/+1
| | | | | | | | | | | | | | | | | Add VGEM to the Linux image that runs in the CI. There are tests that we plan to add in the future that need this. This brings a complication, as we already have VKMS in the image. The order in which DRM devices are loaded is not always the same, so the node they receive is non-deterministic. Until now we were sure that VKMS (the virtual device we use to run the DRM-backend tests in the CI) would be in "/dev/dri/card0", but now we can't be sure. To deal with this problem we find the node of each device using a one-liner shell script. This commit also updates the documentation section that describes specificities of DRM-backend tests in our test suite. Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
* gl-renderer: add support for (a|x)bgr16161616 shm formatsManuel Stoeckl2022-02-021-1/+1
| | | | | | | | | | | | | | | | | These formats are useful because they are often easier to produce on CPU than half-float formats, and abgr16161616 has both >= 10bpc color channels and adequate alpha, unlike abgr2101010. The 16-bpc textures created from buffers with these formats require the GL_EXT_texture_norm16 extension. As WL_SHM_FORMAT_ABGR16161616 was introduced in libwayland 1.20, update Weston's build requirements and CI. The formats also needed to be registered in the pixel format table, and defined in a fallback path if recent libdrm is not available. Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
* ci: Enable weston-launch explicitly for testKenny Levinsen2022-01-271-0/+2
| | | | Signed-off-by: Kenny Levinsen <kl@kl.wtf>
* build: deprecate fbdev backendSimon Ser2022-01-251-0/+1
| | | | | | | | | | | | Rename the build option to "deprecated-backend-fbdev" so that a previously configured build dir doesn't retain the old setting. This is consistent with the existing "deprecated-wl-shell" option. Make the option default to "false". Print a warning when fbdev is force-enabled. Signed-off-by: Simon Ser <contact@emersion.fr> References: https://gitlab.freedesktop.org/wayland/weston/-/issues/581
* CI: emit cobertura artifact from only one jobPekka Paalanen2021-12-021-3/+3
| | | | | | | | | | | | | | | | | | | I do not know what happens if multiple jobs declare artifacts:reports:cobertura. Maybe the last job to finish wins? Who cares, Gitlab can only show the results from one cobertura report in the MR diff view. Recently, the MR diffs have the coverage annotations, but there was a time when they seemed to be missing. I don't know why. Let's make sure the cobertura report Gitlab will use is from the "main" build only: 64-bit Debian with full features and gcc. I do not move the after_script, because maybe someone could have a reason to look at arch-specific coverage reports, so I want to leave the HTML there in the artifacts. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
* .gitlab.ci: Enable debug for libsteat and for the DRM backendMarius Vlad2021-11-301-0/+1
| | | | | | | | | | | | | As the drm-smoke test randomly reports having the connector disabled, and with it libseat reports setMaster errors, this enables DRM backend debug messages for the kernel, and for libseat in an attempt to track down the issue, whenever it might happen again. These are pretty harmless, in terms of data being generated as we only have a single DRM test using VKMS, and the libseat debug message aren't that verbose, so we're safe keeping them for the time being. Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
* CI: bump mesa and wayland-protocol versions for dma-buf feedbackLeandro Ribeiro2021-11-251-1/+1
| | | | | | | | | | | | | | Bump the wayland-protocol dependency version in order to include dma-buf feedback, whose support in Weston is added in the next commits. Also, as we need the newer EGL extension EGL_EXT_device_drm_render_node to add the support for dma-buf feedback, bump the Mesa dependency version as well. It also includes some minor changes in order to keep build-deps.sh more consistent. Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
* ci: Move Debian from Buster to BullseyeDaniel Stone2021-11-251-4/+4
| | | | | | | | | | | | | | | Now Debian 11 (Bullseye) has been released, shift our CI builds to using that instead of the older Buster. Due to dependency-chain changes, we have to install a lot more packages explicitly and retain more at runtime. This is exacerbated by pkg-config now requiring the entire chain to be installed, not just the immediate dependencies. Our documentation toolchain also gets bumped to a higher version to deal with Doxygen changes. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Upgrade kernel to v5.14Daniel Stone2021-11-251-1/+1
| | | | | | | | | | Older kernels cannot be built and booted with GCC 10+, as included in Debian bullseye, due to unfortunate stack-canary issues: https://lore.kernel.org/lkml/20200314164451.346497-1-slyfox@gentoo.org/T/ Upgrade to the last-released kernel, 5.14, to fix this. Signed-off-by: Daniel Stone <daniels@collabora.com>
* gitlab-ci: Use the same name as for check-commitsMarius Vlad2021-10-181-1/+1
| | | | Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
* gitlab-ci: Check merge request for allowing editsMarius Vlad2021-10-181-0/+1
| | | | | | | Ensures that users tick allow collabration to make rebasing possible from maintainers, and fast forward merge requests. Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
* ci: bump test timeoutsPekka Paalanen2021-09-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is prompted by the spurious CI failure https://gitlab.freedesktop.org/wayland/weston/-/jobs/13891809 saying: 31/36 output-damage TIMEOUT 122.52s 8 subtests passed 32/36 output-transforms TIMEOUT 122.52s 16 subtests passed 33/36 subsurface TIMEOUT 122.52s 34/36 xwayland TIMEOUT 122.51s 35/36 ivi-shell-app TIMEOUT 122.51s ERROR: Job failed: execution took longer than 5m0s seconds That is hitting both kinds of timeouts at the same time: the per-test timeouts, and the CI job total timeout. That run seems to have had a particularly ill fortune, as a simple retry finished the same job in 2 minutes, and the longest running test took only 24 seconds. Nevertheless, by Daniel Stone's suggestion let's bump both timeouts: - the per-test timeout to 120 seconds, which with the multiplier in CI goes up to 8 minutes - the job timeout for all build related jobs to 15 minutes The timeout for tests_standalone is not bumped as we are not adding significant amounts of new tests there. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
* ci: upgrade seatd to 0.6Simon Ser2021-09-141-3/+3
| | | | | | | | | This upgrades seatd to the latest version. Examples are disabled by default. Man pages are already disabled by auto_features=disabled. Other build options have been renamed. Signed-off-by: Simon Ser <contact@emersion.fr>
* ci: replace kvmconfig with kvm_guest.configLeandro Ribeiro2021-08-131-1/+1
| | | | | | | | | Remove the following warning: WARNING: 'make kvmconfig' will be removed after Linux 5.10 Please use 'make kvm_guest.config' instead. Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
* ci: Add clang build jobsDaniel Stone2021-08-031-2/+27
| | | | Signed-off-by: Daniel Stone <daniels@collabora.com>
* ci: Remove erroneous extension from .build-no-testDaniel Stone2021-08-031-1/+0
| | | | | | | This shouldn't extend the base .build-env, since we have per-environment extensions. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Separate build types out into stagesDaniel Stone2021-08-031-8/+12
| | | | | | | Give ourselves a bit more separation between the different job types, so it's easier to see what's running and/or failing. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Add ARMv7 supportDaniel Stone2021-08-031-0/+35
| | | | | | | | | ARMv7 is still an important architecture for us to run on, and running on ARMv7 also gives us 32-bit build coverage. As distros are deprecating their non-64-bit-x86 support, this may be our only realistic chance of ensuring that our build is also 32-bit-clean. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Add full AArch64 KVM supportDaniel Stone2021-08-031-6/+28
| | | | | | | | | | | | Build a kernel for AArch64 and run it under virtme just like we do for x86-64. This requires adding support for the AArch64 defconfig variant, and accommodating for the fact that it builds DRM as a module by default rather than built in. The virtme branch we are using has also been rebased on top of newer virtme upstream which unbreaks AArch64. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Add initial AArch64 supportDaniel Stone2021-08-031-2/+38
| | | | | | | This only runs a single build job, to build without GL and not run any tests, as KVM support is not yet included. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Parameterise kernel build a bit moreDaniel Stone2021-08-031-3/+5
| | | | | | | AArch64 needs different names and paths to x86-64, so let's allow for that. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Use 'needs' to make dependencies more clearDaniel Stone2021-08-031-7/+16
| | | | | | | | | | | | | | GitLab CI has two execution scheduling models. The original model is to split jobs into stages; jobs within a single stage may execute in parallel, but execution is serialised between stages. As we move to supporting multiple OSes and architectures, there is no need to serialise, e.g. the AArch64 Linux build against the x86-64 FreeBSD container preparation. Declare our dependencies explicitly using `needs`. Signed-off-by: Daniel Stone <daniels@collabora.com>
* ci: Bump Meson to 0.57.1Daniel Stone2021-08-031-1/+1
| | | | | | | 0.57.0 has a bug where the whole test harness crashes when using TAP and failing tests, cf. https://github.com/mesonbuild/meson/pull/8385 Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Start parameterising for OS/architectureDaniel Stone2021-08-031-24/+48
| | | | | | | | No functional change to the test runs, apart from changing the job names. This will allow us to test along more axes without more duplication. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: no-test jobs don't need KVMDaniel Stone2021-08-031-2/+0
| | | | | | We only need KVM for testing. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Deduplicate $PATHDaniel Stone2021-08-031-2/+1
| | | | | | No need to set it twice. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Rename job names to keep parameters firstDaniel Stone2021-08-031-9/+9
| | | | | | | | | GitLab already groups our various stages (container, build, etc) into separate UI elements. Within those stages, the important information is the parameterisation (architecture, OS, toolchain). We don't want that to get ellipsised, so put that first in the job names. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Document the build and container processDaniel Stone2021-08-031-1/+66
| | | | | | Explain what we do within our CI and why, with links as required. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Build wayland-protocols in containerDaniel Stone2021-08-031-12/+1
| | | | | | | Keep this as part of our container image; there's no reason to pull it for every single build. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Use appropriate parallelism for container buildsDaniel Stone2021-08-031-1/+1
| | | | | | | The shared runners export ${FDO_CI_CONCURRENT} for the appropriate number of CPUs we should use during our builds. Signed-off-by: Daniel Stone <daniels@collabora.com>
* ci: Use ci-fairy to check for Signed-off-byJonas Ådahl2021-07-311-0/+21
| | | | | | [daniels: Only run on MRs.] Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
* ci: Switch to using new rules syntaxDaniel Stone2021-07-311-2/+12
| | | | | | | The rules syntax is more clear and explicit than the previous only/except. Switch to using that. Signed-off-by: Daniel Stone <daniels@collabora.com>
* ci: Update ci-templates to newer versionJonas Ådahl2021-07-311-1/+3
| | | | | | [daniels: Extracted from previous patch, updated to even-newer version.] Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
* Update gitlab-ci pipewire to version 0.3.31James Hilliard2021-07-311-1/+1
| | | | | | | | | | | | Updating PipeWire to the latest version lets us check that everything still works well, and shows users that they are able to use it. [daniels: Updated to 0.3.31, use symbolic ref tags rather than SHAs. 0.3.32 is released, but doesn't build in our Debian environment; this is fixed upstream but there is no release for it yet.] Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
* gitlab-ci.yml: Use same container source as the docsMarius Vlad2021-07-281-0/+3
| | | | Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
* ci: Fix pull rate limit errorsDerek Foreman2021-07-281-0/+3
| | | | | | | | Pull the container from a source without a rate limit Suggested by Daniel Stone <daniels@collabora.com> Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
* CI: Use FDO_CI_CONCURRENTDaniel Stone2021-05-181-4/+4
| | | | | | | | | | | | | | | | | | | | | $FDO_CI_CONCURRENT is provided by in the CI environment by the fd.o GitLab runners to tell us how many parallel processes would be 'good' to use. Use this to override the default Ninja invocation which uses as many CPUs as available, and instead tell it to use as many parallel processes as the runner thinks we should during the build process. Tests are invoked using `meson test` inside a virtme/QEmu VM; whilst Meson's test backend will use as many processors as availble, virtme will by default create a single-CPU VM. So if we create a VM with as many CPUs as we should have parallel processes, we can let it use all of them. This also requires quadrupling the requested RAM so ASan doesn't force us straight into OOM. Suggested by @daenzer. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: Quieten virtme kernel outputDaniel Stone2021-05-171-1/+1
| | | | | | We don't need the entire verbose boot log in CI every time. Signed-off-by: Daniel Stone <daniels@collabora.com>
* CI: shorten job namesPekka Paalanen2021-05-151-13/+13
| | | | | | | | | | | | | The old job names were really long, so long that Gitlab web UI had to almost always ellipsize them, showing only the beginning which is the same fof the two and hiding the part that actually matters. Rename the templates and the jobs to be shorter and more descriptive. Meson is the only tool we build with. All builds are native. Default options is a long way to say full-featured and besides libseat was not even default yet we build it. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
* CI: put coverage-html output into filePekka Paalanen2021-05-151-1/+1
| | | | | | | I'm tired of scrolling through that flood when looking at CI logs. It's just listing every gcno, gcda and c file name as it parses them. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
* CI: turn BUILDDIR and PREFIX into CI variablesPekka Paalanen2021-05-151-14/+14
| | | | | | | | | | | | Change BUILDDIR and PREFIX from exported shell variables into CI variables. This way they can be used in CI configuration, e.g. artifacts. The main reason for this change is that it makes it possible to use these variables in after_script, which is not possible with shell variables as the values do not carry over there. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
* CI: use address sanitizer without leak checksPekka Paalanen2021-05-121-2/+2
| | | | | | | | | | | | | | | Use address sanitizer to catch use-after-free and other errors when running the test suite. Leak detection is disabled, because currently there are too many leaks, making almost all tests fail otherwise. The atexit=1 is for verifying that ASan was actually used. The default 128 MB of RAM in the qemu machine leads to oom-killer killing most tests, so bump the memory size to 1 GB. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>