summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
Commit message (Collapse)AuthorAgeFilesLines
* ci: Add job to check code stylewip/carlosg/code-style-checksCarlos Garnacho2021-08-221-2/+21
| | | | | At the moment, allow the task to fail, while we smooth out the uncrustify configuration.
* ci: Switch to meson's generated Junit reportFlorian Müllner2021-08-221-1/+1
| | | | | | ... instead of generating it ourselves from the regular meson logs. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1957>
* ci: Use backend-agnostic meson command to buildFlorian Müllner2021-08-221-8/+8
| | | | | | | There's no alternative backend in sight for us, but it's nice to only deal with a single build tool. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1957>
* xwayland-grab-keyboard: Switch to g_pattern_spec_match_string()Jonas Ådahl2021-08-121-1/+5
| | | | | | | The g_pattern_match_string() variant is deprecated, switch to the properly namespaced one. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1941>
* ci: Build settings-desktop-schemas from gitFlorian Müllner2021-07-271-1/+5
| | | | | | | We need a newer version for https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/687. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1938>
* ci: Move FDO_UPSTREAM_REPO to global scopeFlorian Müllner2021-07-191-1/+3
| | | | | | | ci-fairy also uses the variable to set the upstream remote that is used to build the commit range to check. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1936>
* ci: Bump ci-templates imageFlorian Müllner2021-07-191-2/+2
| | | | | | | | | | Before building a container image, the code checks that the repository's container registry is enabled. That check was broken a while ago, update the image to pull in the fix. See https://gitlab.freedesktop.org/freedesktop/ci-templates/-/issues/39 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1935>
* ci: Add job for pushing coverity reportsCarlos Garnacho2021-07-131-4/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This job does: 1. Download the coverity bundle and untar it 2. Build mutter using clang and the coverity tool 3. Compress the coverity report 4. Upload for analysis Things to note: - Analysis are throttled, as per https://scan.coverity.com/faq#frequency we qualify for 21 weekly builds, 3 daily. Mutter is sometimes a busy project, so it seems we'd get often those consumed early in the day. This is something we can resign to, but the times we'll try to upload a report to have it rejected make the operation kinda pointless and probably better throttled by ourselves. - The task is manual, given the restrictions above. - The task only applies on master, as the envvar holding the coverity token is protected in gitlab. - I had to use clang as the coverity tool doesn't seem to work ATM with gcc as per recent Fedora. - The coverity tarball is 1.2GB in size, which is a bit too big to have it downloaded each time. As per their upload instructions, the tarball gets updated twice yearly, so this is cached to minimize downloads. - The coverity token for mutter is kept private/hidden in gitlab CI settings. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1100>
* ci: Bump to F34Jonas Ådahl2021-07-081-82/+26
| | | | | | | | | | | | This drops some custom building of various components that are now up to date. While at it, start using the FDO_DISTRIBUTION_PACKAGES variable to install packages, as it with the bumped ci-templates version also doesn't install weak dependencies. This also requires tweaking the pipewire dead lock work arounds, as it changed configuration file paths. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1865>
* ci: Enable native backend and screen cast testsJonas Ådahl2021-03-121-2/+2
| | | | | | | | | | | | | With the surfaceless mode in the headless backend, it's now possible to initiate the headless mode without any mode setting devices, or render nodes, without any special CI runner privileges. The native backend tests include screen cast tests, so make them possible to run by starting pipewire. Testing shows that enabling audio support (pulseaudio & jack compat layers) makes the tests dead lock and eventually timeout, so disable those features for now. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1698>
* ci: Run whole run-tests.sh in a D-Bus sessionJonas Ådahl2021-03-121-1/+2
| | | | Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1698>
* tests: Add headless native backend testJonas Ådahl2021-03-121-3/+3
| | | | | | | | | | It doesn't do anything more than construct and tear down, but it's a start. Don't run the test as part of CI yet, as doesn't have the DRM devices needed. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1698>
* ci: Update ci-fairy imageFlorian Müllner2021-03-041-1/+1
| | | | | | | Previously the information which commit failed a commit message check was hidden in parts of the report that don't show up in gitlab's UI. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1753>
* ci: Drop dependencies: stanzasMichel Dänzer2021-02-101-10/+0
| | | | | | Redundant with needs:. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1725>
* build: Bump pipewire dependencyGeorges Basile Stavracas Neto2021-02-081-1/+15
| | | | | | | | | | The 0.3.21 release includes busy buffers, which are a requirement for us to switch to cogl_framebuffer_flush() in the next commit. Bump pipewire dependency to 0.3.21, and adjust CI to build it from the corresponding tag. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1701>
* Change all g_memdup() to g_memdup2()Jonas Ådahl2021-02-041-1/+8
| | | | | | | | Using g_memdup() is dangerous due to the type of the size argument. See https://gitlab.gnome.org/GNOME/glib/-/issues/2319 and https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1926 for details. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1708>
* ci: Install Xwayland from gitJonas Ådahl2021-01-251-3/+22
| | | | | | This gives us -initfd, thus Xwayland on demand in the CI. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1681>
* build: Bump gsettings-desktop-schemas dependencyCarlos Garnacho2021-01-141-1/+5
| | | | | | | We will depend on new settings there, ensure we build depend on it, and CI pulls the dependency. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1416>
* ci: Replace custom commit-log script with ci-fairyFlorian Müllner2021-01-111-3/+8
| | | | | | | ci-fairy now supports checking commit messages for required/disallowed patterns. Use that to replace our custom commit-log script. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1649>
* ci: Set GIT_STRATEGY: no for some jobsMichel Dänzer2020-12-171-0/+6
| | | | | | These jobs don't need the Git tree. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1647>
* ci: Build and test also on aarch64Jonas Ådahl2020-11-231-30/+88
| | | | | | | | | | | | This adds 64 bit ARM support to parts of the CI pipeline, more specifically, we now: - Build a 64 bit ARM container image alongside the 64 bit x86 one. - Build test mutter on 64 bit ARM - Run tests on 64 bit ARM - Check coverage on 64 bit ARM Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1577>
* ci: Bump ci-templates to include ci-fairy fixJonas Ådahl2020-11-231-2/+2
| | | | | | | | | | This should avoid ci-fairy crashing when checking merge requests on the same repo as the target branch. See https://gitlab.freedesktop.org/freedesktop/ci-templates/-/merge_requests/66. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1587>
* ci: Generate junit report if project doesn't enable the registryJonas Ådahl2020-11-231-2/+2
| | | | | | | | | | | | | | The image registry must be enabled for the CI to work, as the container image from the upstream registry is placed (as a reference, more or less) in the local registry. Recently, ci-templates got a bit more helpful if this happened, and will fail up front and generate a JUnit report with a message describing the issue. Update to this version. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1587>
* ci: Guard pipeline on review stageJonas Ådahl2020-11-201-10/+11
| | | | | | | The first step is now review, as they use the tiny ci-fairy image, not our custom ones, so the guards should be on those, not the build step. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1588>
* ci: Rename only_default to pipeline_guardJonas Ådahl2020-11-201-2/+2
| | | | | | | | It's the rules that guard the pipelines, deciding when they are allowed to run or not. The 'only_default' comes from the fact that in the past they set the only: field. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1588>
* ci: Include gdm in imageFlorian Müllner2020-11-201-1/+9
| | | | | | | | | | | gnome-shell depends on gdm's client library at runtime, but the new pipeline-built image no longer provides it. Add it back, but built it from source instead of using the Fedora package, so we don't draw in all of gdm's runtime dependencies (which includes a full GNOME session including gnome-shell). Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1590>
* ci: Include development files for accountsserviceFlorian Müllner2020-11-201-1/+1
| | | | | | ... needed to build GDM, which we'll do in the next commit. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1590>
* ci: Check that allow-collaboration is checked for merge requestsJonas Ådahl2020-11-201-0/+18
| | | | | | | This required for merging to be possible, so make the lack of this check box being checked a discoverable error. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1586>
* ci: Use ci-fairy image in review and run firstJonas Ådahl2020-11-201-9/+10
| | | | | | | This image is much smaller than the one with all the build dependencies, thus will finish much faster. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1586>
* ci: Use non-string like list for "need" relationshipsJonas Ådahl2020-11-201-7/+14
| | | | | | | Looks more natural, since it refers to another entity, not an arbitrary string. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1586>
* ci: Include GTK4Florian Müllner2020-11-201-1/+2
| | | | | | ... for https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1495. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1584>
* ci: Bump ci-templates to include registry path fixJonas Ådahl2020-11-201-1/+1
| | | | | | | | | | | | | ci-templates had a bug where it failed to find the ready-built container images on the upstream repository due to invalid assumptions about the relationship between upstream repository and image registry. This resulted in the container image to be rebuilt, wasting valuable CPU cycles and storage space. Bump the included ci-templates template to include the fix for this. See https://gitlab.freedesktop.org/freedesktop/ci-templates/-/issues/22. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1583>
* ci: Set some sensible defaultsJordan Petridis2020-11-201-0/+12
| | | | | | | * Allow for all jobs to be cancelled if a newer commit is pushed * Automatically retry jobs if they fail due to some infrastructure issue Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1578>
* ci: Replace only/except with rulesJordan Petridis2020-11-201-10/+12
| | | | | | | | | | | | | | | | | only/except keywords where deperecated in favor of rules. Since we started using GNOME/mutter!1525 it introduced a second pipeline being run for each commit. Detached pipelines are the only way to access CI_MERGE_REQUEST_* variables, and if we disable normal pipelines you will need to create wip/spam MRs in order to run the tests. This reworked rules makes it so, the normal pipeline needs manual interaction to be started, and the detached/MR pipleines is always run. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1578>
* ci: Use ci-templatesJonas Ådahl2020-11-191-1/+54
| | | | | | | | | | This changes from manual container image building using podman locally to building the container images as part of the CI pipeline. It uses the CI templates from https://gitlab.freedesktop.org/freedesktop/ci-templates. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1525>
* gitlab-ci.yml: Removed unnecessary when:Jonas Ådahl2020-11-161-1/+0
| | | | | | It resulted in failed instead of skipped jobs. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1567>
* ci: Make check-commit-log run againJonas Ådahl2020-11-161-0/+12
| | | | | | It needs 'only: merge_request' to get the necessary env variables. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1567>
* ci: Wait for review stage before continuingJonas Ådahl2020-11-161-23/+3
| | | | | | | | | | | | | | | | | If review fails, it'll fail very early in the pipeline, but we won't see the test case failure until the whole pipeline succeeds, which might be 10 minutes later. To avoid sitting there wondering why it failed, let the time consuming jobs wait until the review stage, which tends to take less than 20 seconds, succeeds. This way the review test result will be presented earlier. This changes the pipeline to run the check-commit-log job also for non-merge requests, with the difference being that it will pass immediately if it's not a merge request. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1549>
* ci/check-commit-log: Generate JUnit reportJonas Ådahl2020-11-161-0/+6
| | | | | | | This will make it less horrible when commit message doesn't pass the compliance checks. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1549>
* ci: Run coverage target by defaultCarlos Garnacho2020-10-281-12/+8
| | | | | | | | | We're just a "ninja coverage" away from getting the full report, it is not that much extra to the pipeline. Also, fix bugs that accumulated since the manual task was added, e.g. let the full built+tested tree available on the coverity stage. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1535
* ci: Generate a cover report for the test suiteNiels De Graef2020-10-151-6/+9
| | | | | | | | | Based on @ebassi's work from https://gitlab.gnome.org/GNOME/glib/merge_requests/769 This MR allows us to see the succeeded/failed tests each time the CI pipeline is run. https://gitlab.gnome.org/GNOME/mutter/merge_requests/528
* ci: Explicitly specify job dependenciesFlorian Müllner2020-08-041-0/+6
| | | | | | | | | | We can speed up CI a bit by allowing build jobs to run in parallel with review jobs, and don't have test jobs wait for non-default build configuration builds. See https://gitlab.gnome.org/help/ci/yaml/README.md#needs for details. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1398
* ci: Save built artifacts only for the test buildMarco Trevisan (Treviño)2020-05-071-4/+2
| | | | | | | | | | We only test the meson-build job, so there's no point to save artifacts for the other test-build only builds. So, only save meson logs artifacts (with a default gitlab expiration time) for the other build-without-* jobs https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1236
* ci: Remove the MALLOC_PERTURB_ definitionMarco Trevisan (Treviño)2020-05-071-1/+0
| | | | | | | | meson already provides one by default [1]. [1] https://github.com/mesonbuild/meson/blob/master/docs/markdown/Unit-tests.md#malloc_perturb_ https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1236
* ci: Enable coverage reports in test buildMarco Trevisan (Treviño)2020-05-071-1/+22
| | | | | | | | | | | | | | | While we don't have an high number of tests, we still have some code coverage and so we can track this via gitlab CI, given that it supports it natively. So add gcovr to the DockerFile dependency, build with -Db_coverage=true meson native parameter, and add another manual job to make ninja to generate the coverage reports on requests or in any master or tag ref. Keep the artifacts around to be able to browse the generated HTML files and eventually print the text reports so that they can be parsed by gitlab. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1236
* ci: Rebase docker image to F32Florian Müllner2020-04-071-1/+1
| | | | | | | | | | | | | We have branched now, time for a shiny new CI image. Update the Dockerfile to: - switch to F32 - use a single shared copr - drop dependencies that are now covered by builddep - do not include weak deps https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1176
* ci: Add a new 'build-without-opengl-and-glx' stepGeorges Basile Stavracas Neto2020-03-261-0/+14
| | | | | | To make sure we don't regress with this specific set of flags. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1151
* ci: Update docker image to v3Florian Müllner2019-10-291-1/+1
| | | | | | | | It's this time of the cycle again: Rebase the docker image to the upcoming Fedora release, so we can drop a fair bit of the custom dependencies that have piled up. https://gitlab.gnome.org/GNOME/mutter/merge_requests/894
* ci: Change the without-native-backend to not build with Wayland tooJonas Ådahl2019-10-101-2/+2
| | | | | | | | | | | | | | | | There are two common ways of building mutter: With both the native backend and Wayland support (most common, used by most Linux distributions), and without the native backend and Wayland support (as is done by some BSD*s). To catch compilation errors in both these common build configurations, change the no-native-backend build phase to also not build with Wayland support. This also disables building mutter tests, as tests depend on Wayland to run. https://gitlab.gnome.org/GNOME/mutter/merge_requests/837
* ci: Don't build gnome-shell's man pagesFlorian Müllner2019-08-211-1/+1
| | | | | | | | | One of the man pages is now generated using asciidoc, which is missing from the CI image. But given that this doesn't depend on mutter in any way, just disable man pages in the gnome-shell build instead of updating the Dockerfile. https://gitlab.gnome.org/GNOME/mutter/merge_requests/740