2019-03-18 17:51:07 +03:00
|
|
|
# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0:
|
|
|
|
|
2023-06-12 11:50:03 +03:00
|
|
|
.templates_sha: &template_sha 184ca628f89f3193c249b4e34e45afee2773a833 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
|
2021-06-21 23:34:43 +03:00
|
|
|
# This file uses the freedesktop ci-templates to build Weston and run our
|
|
|
|
# tests in CI.
|
2021-09-12 14:48:41 +03:00
|
|
|
#
|
2021-06-21 23:34:43 +03:00
|
|
|
# ci-templates uses a multi-stage build process. First, the base container
|
|
|
|
# image is built which contains the core distribution, the toolchain, and
|
|
|
|
# all our build dependencies. This container is aggressively cached; if a
|
|
|
|
# container image matching $FDO_DISTRIBUTION_TAG is found in either the
|
|
|
|
# upstream repo (wayland/weston) or the user's downstream repo, it is
|
|
|
|
# reused for the build. This gives us predictability of build and far
|
|
|
|
# quicker runtimes, however it means that any changes to the base container
|
|
|
|
# must also change $FDO_DISTRIBUTION_TAG. When changing this, please use
|
|
|
|
# the current date as well as a unique build identifier.
|
|
|
|
#
|
|
|
|
# After the container is either rebuilt (tag mismatch) or reused (tag
|
|
|
|
# previously used), the build stage executes within this container.
|
|
|
|
#
|
|
|
|
# The final stage is used to expose documentation and coverage information,
|
|
|
|
# including publishing documentation to the public site when built on the
|
|
|
|
# main branch.
|
|
|
|
#
|
|
|
|
# Apart from the 'variables', 'include', and 'stages' top-level anchors,
|
|
|
|
# everything not beginning with a dot ('.') is the name of a job which will
|
|
|
|
# be executed as part of CI, unless the rules specify that it should not be
|
|
|
|
# run.
|
|
|
|
#
|
|
|
|
# Variables prefixed with CI_ are generally provided by GitLab itself;
|
|
|
|
# variables prefixed with FDO_ and templates prefixed by .fdo are provided
|
|
|
|
# by the ci-templates.
|
|
|
|
#
|
|
|
|
# For more information on GitLab CI, including the YAML syntax, see:
|
|
|
|
# https://docs.gitlab.com/ee/ci/yaml/README.html
|
|
|
|
#
|
|
|
|
# Note that freedesktop.org uses the 'Community Edition' of GitLab, so features
|
|
|
|
# marked as 'premium' or 'ultimate' are not available to us.
|
|
|
|
#
|
|
|
|
# For more information on ci-templates, see:
|
|
|
|
# - documentation at https://freedesktop.pages.freedesktop.org/ci-templates/
|
|
|
|
# - repo at https://gitlab.freedesktop.org/freedesktop/ci-templates/
|
2021-07-31 17:07:58 +03:00
|
|
|
|
2019-03-18 17:51:07 +03:00
|
|
|
variables:
|
2020-05-08 00:33:57 +03:00
|
|
|
FDO_UPSTREAM_REPO: wayland/weston
|
2023-05-17 15:43:20 +03:00
|
|
|
FDO_REPO_SUFFIX: "$BUILD_OS-$FDO_DISTRIBUTION_VERSION/$BUILD_ARCH"
|
2024-07-23 00:21:33 +03:00
|
|
|
FDO_DISTRIBUTION_TAG: '2024-08-05-00-rm-plugins'
|
2019-03-18 17:51:07 +03:00
|
|
|
|
|
|
|
|
|
|
|
include:
|
2021-06-21 23:34:43 +03:00
|
|
|
# Here we use a fixed ref in order to isolate ourselves from ci-templates
|
|
|
|
# API changes. If you need new features from ci-templates you must bump
|
|
|
|
# this to the current SHA you require from the ci-templates repo, however
|
|
|
|
# be aware that you may need to account for API changes when doing so.
|
2020-05-08 00:25:48 +03:00
|
|
|
- project: 'freedesktop/ci-templates'
|
2021-07-31 17:07:58 +03:00
|
|
|
ref: *template_sha
|
2019-03-18 17:51:07 +03:00
|
|
|
file: '/templates/debian.yml'
|
2021-07-31 17:12:08 +03:00
|
|
|
- project: 'freedesktop/ci-templates'
|
|
|
|
ref: *template_sha
|
|
|
|
file: '/templates/ci-fairy.yml'
|
2019-03-18 17:51:07 +03:00
|
|
|
|
2024-06-07 15:45:17 +03:00
|
|
|
.default-rules:
|
|
|
|
rules:
|
|
|
|
# do not duplicate pipelines on merge pipelines
|
|
|
|
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
|
|
|
|
when: never
|
|
|
|
# we need a default case though, so all the rest still run
|
|
|
|
- when: on_success
|
|
|
|
|
|
|
|
.merge-rules:
|
|
|
|
rules:
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
|
|
when: always
|
|
|
|
- when: never
|
2018-06-06 00:20:40 +03:00
|
|
|
|
2021-06-21 23:34:43 +03:00
|
|
|
# Define the build stages. These are used for UI grouping as well as
|
|
|
|
# dependencies.
|
2018-06-06 00:20:40 +03:00
|
|
|
stages:
|
2021-06-22 12:58:39 +03:00
|
|
|
- "Merge request checks"
|
2024-06-07 15:45:17 +03:00
|
|
|
- "Pre Base container"
|
2021-06-22 12:58:39 +03:00
|
|
|
- "Base container"
|
|
|
|
- "Full build and test"
|
|
|
|
- "No-GL build and test"
|
|
|
|
- "Other builds"
|
2019-06-14 16:00:07 +03:00
|
|
|
- pages
|
2018-06-06 00:20:40 +03:00
|
|
|
|
|
|
|
|
2021-06-21 23:34:43 +03:00
|
|
|
# Base variables used for anything using a Debian environment
|
2023-05-17 14:25:16 +03:00
|
|
|
.os-debian-lts:
|
2020-05-08 00:33:57 +03:00
|
|
|
variables:
|
2021-06-22 00:25:41 +03:00
|
|
|
BUILD_OS: debian
|
2023-05-17 14:22:26 +03:00
|
|
|
LLVM_VERSION: 11
|
2021-08-16 18:49:52 +03:00
|
|
|
FDO_DISTRIBUTION_VERSION: bullseye
|
2023-05-17 15:41:54 +03:00
|
|
|
FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} BUILD_ARCH=${BUILD_ARCH} KERNEL_IMAGE=${KERNEL_IMAGE} KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG} LLVM_VERSION=${LLVM_VERSION} FDO_DISTRIBUTION_VERSION=${FDO_DISTRIBUTION_VERSION} bash .gitlab-ci/debian-install.sh'
|
2020-05-08 00:33:57 +03:00
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
.os-debian:
|
|
|
|
variables:
|
|
|
|
BUILD_OS: debian
|
|
|
|
LLVM_VERSION: 15
|
CI: work around LeakSanitizer crashes with use_tls=0
Without this fix, we have randomly been getting CI failures due to
LeakSanitizer itself crashing after all the tests in a program have
succeeded. This has been happening randomly for a long time, but
https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1486
made it very reliably repeatable in the job x86_64-debian-full-build
(and no other job) in the test-subsurface-shot program.
--- Fixture 2 (GL) ok: passed 4, skipped 0, failed 0, total 4
Tracer caught signal 11: addr=0x1b8 pc=0x7f6b3ba640f0 sp=0x7f6b2cc77d10
==489==LeakSanitizer has encountered a fatal error.
I was also able to get a core file after twiddling, but there it ended
up with lsan aborting itself rather than a segfault.
We got some clues that use_tls=0 might work around this, from
https://github.com/google/sanitizers/issues/1342
https://github.com/google/sanitizers/issues/1409
and some other projects that have cargo-culted the same workaround.
Using that cause more false leaks to appear, so they need to be
suppressed. I suppose we are not interested in catching leaks in glib
using code, so I opted to suppress g_malloc0 altogether. Pinpointing it
better might have required much more slower stack tracing.
wl_shm_buffer_begin_access() uses TLS, so no wonder it gets flagged.
ld-*.so is simply uninteresting to us, and it got flagged too.
Since this might have been fixed already in LeakSanitizer upstream, who
knows, leave some notes to revisit this when we upgrade that in CI.
This fix seems to make the branch of
https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1486
in my quick testing.
Suggested-by: Derek Foreman <derek.foreman@collabora.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2024-04-09 15:41:45 +03:00
|
|
|
# If you upgrade from bookworm, see the use_tls=0 notes in tests/meson.build.
|
2023-05-17 15:43:20 +03:00
|
|
|
FDO_DISTRIBUTION_VERSION: bookworm
|
|
|
|
FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} BUILD_ARCH=${BUILD_ARCH} KERNEL_IMAGE=${KERNEL_IMAGE} KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG} LLVM_VERSION=${LLVM_VERSION} FDO_DISTRIBUTION_VERSION=${FDO_DISTRIBUTION_VERSION} bash .gitlab-ci/debian-install.sh'
|
|
|
|
|
2024-06-07 15:45:17 +03:00
|
|
|
# Does not inherit .default-rules as we only want it to run in MR context.
|
2021-07-31 17:12:08 +03:00
|
|
|
check-commit:
|
|
|
|
extends:
|
|
|
|
- .fdo.ci-fairy
|
2024-06-07 15:45:17 +03:00
|
|
|
- .merge-rules
|
2021-06-22 12:58:39 +03:00
|
|
|
stage: "Merge request checks"
|
2021-07-31 17:12:08 +03:00
|
|
|
script:
|
|
|
|
- ci-fairy check-commits --signed-off-by --junit-xml=results.xml
|
2021-10-18 15:50:42 +03:00
|
|
|
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml
|
2021-07-31 17:12:08 +03:00
|
|
|
variables:
|
|
|
|
GIT_DEPTH: 100
|
|
|
|
artifacts:
|
|
|
|
reports:
|
|
|
|
junit: results.xml
|
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
.debian-lts-x86_64:
|
2021-06-22 00:25:41 +03:00
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .os-debian-lts
|
2021-06-22 00:25:41 +03:00
|
|
|
variables:
|
|
|
|
BUILD_ARCH: "x86-64"
|
2021-06-22 02:16:05 +03:00
|
|
|
KERNEL_IMAGE: "bzImage"
|
|
|
|
KERNEL_DEFCONFIG: "x86_64_defconfig"
|
2020-05-08 00:33:57 +03:00
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
.debian-x86_64:
|
|
|
|
extends:
|
|
|
|
- .os-debian
|
|
|
|
variables:
|
|
|
|
BUILD_ARCH: "x86-64"
|
|
|
|
KERNEL_IMAGE: "bzImage"
|
|
|
|
KERNEL_DEFCONFIG: "x86_64_defconfig"
|
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
.debian-lts-armv7:
|
2021-06-22 02:53:07 +03:00
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .os-debian-lts
|
2021-06-22 02:53:07 +03:00
|
|
|
variables:
|
|
|
|
BUILD_ARCH: "armv7"
|
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
.debian-armv7:
|
|
|
|
extends:
|
|
|
|
- .os-debian
|
|
|
|
variables:
|
|
|
|
BUILD_ARCH: "armv7"
|
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
.debian-lts-aarch64:
|
2021-06-22 02:22:49 +03:00
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .os-debian-lts
|
2021-06-22 02:22:49 +03:00
|
|
|
variables:
|
|
|
|
BUILD_ARCH: "aarch64"
|
2021-06-22 02:33:01 +03:00
|
|
|
KERNEL_IMAGE: "Image"
|
|
|
|
KERNEL_DEFCONFIG: "defconfig"
|
|
|
|
QEMU_SMP: 8 # built-in QEmu limit
|
2021-06-22 02:22:49 +03:00
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
.debian-aarch64:
|
|
|
|
extends:
|
|
|
|
- .os-debian
|
|
|
|
variables:
|
|
|
|
BUILD_ARCH: "aarch64"
|
|
|
|
KERNEL_IMAGE: "Image"
|
|
|
|
KERNEL_DEFCONFIG: "defconfig"
|
|
|
|
QEMU_SMP: 8 # built-in QEmu limit
|
|
|
|
|
2024-06-07 15:45:17 +03:00
|
|
|
base-container-pre:
|
|
|
|
rules:
|
2024-06-11 17:23:33 +03:00
|
|
|
# this run always in merge request
|
2024-06-07 15:45:17 +03:00
|
|
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
|
|
when: always
|
2024-06-11 17:23:33 +03:00
|
|
|
# run always on main to allow docs to publish
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_PATH == "wayland/weston" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH'
|
|
|
|
when: always
|
|
|
|
# allow to run manually in a branch
|
2024-06-07 15:45:17 +03:00
|
|
|
- when: manual
|
|
|
|
stage: "Pre Base container"
|
|
|
|
script: echo "exit 0"
|
|
|
|
|
2021-06-21 23:34:43 +03:00
|
|
|
# Build our base container image, which contains the core distribution, the
|
|
|
|
# toolchain, and all our build dependencies. This will be reused in the build
|
|
|
|
# stage.
|
2023-05-17 14:25:16 +03:00
|
|
|
x86_64-debian-lts-container_prep:
|
2020-05-08 00:33:57 +03:00
|
|
|
extends:
|
2024-06-07 15:45:17 +03:00
|
|
|
- .default-rules
|
2023-05-17 14:25:16 +03:00
|
|
|
- .debian-lts-x86_64
|
2020-05-08 00:33:57 +03:00
|
|
|
- .fdo.container-build@debian
|
2021-04-15 23:43:37 +03:00
|
|
|
timeout: 30m
|
2024-06-07 15:45:17 +03:00
|
|
|
needs:
|
|
|
|
- job: base-container-pre
|
2021-06-22 12:58:39 +03:00
|
|
|
stage: "Base container"
|
2019-03-18 17:51:07 +03:00
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
x86_64-debian-container_prep:
|
|
|
|
extends:
|
2024-06-07 15:45:17 +03:00
|
|
|
- .default-rules
|
2023-05-17 15:43:20 +03:00
|
|
|
- .debian-x86_64
|
|
|
|
- .fdo.container-build@debian
|
2024-06-07 15:45:17 +03:00
|
|
|
needs:
|
|
|
|
- job: base-container-pre
|
2023-05-17 15:43:20 +03:00
|
|
|
timeout: 30m
|
|
|
|
stage: "Base container"
|
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
armv7-debian-lts-container_prep:
|
2021-06-22 02:53:07 +03:00
|
|
|
extends:
|
2024-06-07 15:45:17 +03:00
|
|
|
- .default-rules
|
2023-05-17 14:25:16 +03:00
|
|
|
- .debian-lts-armv7
|
2021-06-22 02:53:07 +03:00
|
|
|
- .fdo.container-build@debian
|
|
|
|
tags:
|
|
|
|
- aarch64
|
|
|
|
variables:
|
2023-05-17 15:43:20 +03:00
|
|
|
FDO_BASE_IMAGE: "arm32v7/debian:$FDO_DISTRIBUTION_VERSION"
|
2024-06-07 15:45:17 +03:00
|
|
|
needs:
|
|
|
|
- job: base-container-pre
|
2023-05-17 15:43:20 +03:00
|
|
|
timeout: 30m
|
|
|
|
stage: "Base container"
|
|
|
|
|
|
|
|
armv7-debian-container_prep:
|
|
|
|
extends:
|
2024-06-07 15:45:17 +03:00
|
|
|
- .default-rules
|
2023-05-17 15:43:20 +03:00
|
|
|
- .debian-armv7
|
|
|
|
- .fdo.container-build@debian
|
|
|
|
tags:
|
|
|
|
- aarch64
|
|
|
|
variables:
|
|
|
|
FDO_BASE_IMAGE: "arm32v7/debian:$FDO_DISTRIBUTION_VERSION"
|
2024-06-07 15:45:17 +03:00
|
|
|
needs:
|
|
|
|
- job: base-container-pre
|
2021-06-22 02:53:07 +03:00
|
|
|
timeout: 30m
|
2021-06-22 12:58:39 +03:00
|
|
|
stage: "Base container"
|
2021-06-22 02:53:07 +03:00
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
aarch64-debian-lts-container_prep:
|
2021-06-22 02:22:49 +03:00
|
|
|
extends:
|
2024-06-07 15:45:17 +03:00
|
|
|
- .default-rules
|
2023-05-17 14:25:16 +03:00
|
|
|
- .debian-lts-aarch64
|
2021-06-22 02:22:49 +03:00
|
|
|
- .fdo.container-build@debian
|
|
|
|
tags:
|
|
|
|
- aarch64
|
2024-06-07 15:45:17 +03:00
|
|
|
needs:
|
|
|
|
- job: base-container-pre
|
2021-06-22 02:22:49 +03:00
|
|
|
timeout: 30m
|
2021-06-22 12:58:39 +03:00
|
|
|
stage: "Base container"
|
2019-03-18 17:51:07 +03:00
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
aarch64-debian-container_prep:
|
|
|
|
extends:
|
2024-06-07 15:45:17 +03:00
|
|
|
- .default-rules
|
2023-05-17 15:43:20 +03:00
|
|
|
- .debian-aarch64
|
|
|
|
- .fdo.container-build@debian
|
|
|
|
tags:
|
|
|
|
- aarch64
|
2024-06-07 15:45:17 +03:00
|
|
|
needs:
|
|
|
|
- job: base-container-pre
|
2023-05-17 15:43:20 +03:00
|
|
|
timeout: 30m
|
|
|
|
stage: "Base container"
|
|
|
|
|
2021-06-21 23:34:43 +03:00
|
|
|
# Core templates for all of our build steps. These are reused by all build jobs
|
|
|
|
# through the `extends` keyword.
|
2021-05-12 17:08:29 +03:00
|
|
|
.build-env:
|
2021-09-22 16:29:05 +03:00
|
|
|
timeout: 15m
|
2021-05-14 13:34:49 +03:00
|
|
|
variables:
|
|
|
|
BUILDDIR: $CI_PROJECT_DIR/build-weston-$CI_JOB_NAME
|
|
|
|
PREFIX: $CI_PROJECT_DIR/prefix-weston-$CI_JOB_NAME
|
2019-03-18 17:51:07 +03:00
|
|
|
before_script:
|
2021-06-21 23:44:37 +03:00
|
|
|
- export PATH=~/.local/bin:$PATH
|
2018-06-06 00:20:40 +03:00
|
|
|
- export XDG_RUNTIME_DIR="$(mktemp -p $(pwd) -d xdg-runtime-XXXXXX)"
|
2020-06-03 16:02:34 +03:00
|
|
|
- export TESTS_RES_PATH="$BUILDDIR/tests-res.txt"
|
2018-06-06 00:20:40 +03:00
|
|
|
- mkdir "$BUILDDIR" "$PREFIX"
|
2019-03-18 17:51:07 +03:00
|
|
|
|
2021-08-03 15:11:51 +03:00
|
|
|
.build-with-clang:
|
|
|
|
variables:
|
2023-05-17 14:22:26 +03:00
|
|
|
CC: clang-$LLVM_VERSION
|
|
|
|
CC_LD: lld-$LLVM_VERSION
|
2021-08-03 15:11:51 +03:00
|
|
|
MESON_TOOLCHAIN_OPTIONS: "$MESON_OPTIONS -Db_lundef=false" # clang+ASan+undef=boom
|
|
|
|
|
2021-06-21 23:34:43 +03:00
|
|
|
# Extends the core build templates to also provide for running our testing. We
|
|
|
|
# run this inside a virtme (qemu wrapper) VM environment so we can test the DRM
|
|
|
|
# backend using the 'vkms' virtual driver under Linux.
|
2021-05-12 17:08:29 +03:00
|
|
|
.build-and-test:
|
2021-06-22 00:25:41 +03:00
|
|
|
extends:
|
2024-06-07 15:45:17 +03:00
|
|
|
- .default-rules
|
2018-07-22 17:38:54 +03:00
|
|
|
script:
|
|
|
|
- cd "$BUILDDIR"
|
2023-04-28 15:53:32 +03:00
|
|
|
- meson --prefix="$PREFIX" --wrap-mode=nofallback -Db_sanitize=address ${MESON_OPTIONS} ${MESON_TOOLCHAIN_OPTIONS} ..
|
2021-05-18 15:56:48 +03:00
|
|
|
- ninja -k0 -j${FDO_CI_CONCURRENT:-4}
|
2018-07-22 17:38:54 +03:00
|
|
|
- ninja install
|
2021-06-22 02:33:01 +03:00
|
|
|
- test -n "${QEMU_SMP}" || QEMU_SMP=${FDO_CI_CONCURRENT:-4}
|
gitlab-ci: Use virtme-ng for running our tests
virtme-ng is the an update version of virtme, and this patch uses
that instead of the one we had partially modified.
Besides that this partially reverts ad039cdfd2b47, 'backend-drm: Enable
atomic async flip support' and makes our CI happier. Specifically
ad039cdfd2b47 updated our kernel version from 6.3 to 6.9 but did not do
a FDO bum,p and with that, no container images were rebuilt. Effectively
we were still using 6.3.
Now, with the FDO bump, in this patch, we noticed that the drm-writeback
test is failing with linux kernel version 6.9.
So far, only 6.3 and 6.4 kernel versions seems to be working, that is,
without that drm writeback test timing out. The safest bet for the
time being, would be to keep our CI just use 6.3 kernel, until we
have proper version to update to.
Signed-off-by: Daniel Stone <daniel.stone@collabora.com>
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2024-07-24 19:35:20 +03:00
|
|
|
- virtme-run --rw --pwd --kimg /weston-virtme/${KERNEL_IMAGE} --kopt quiet --kopt log_buf_len=2M --script-sh ../.gitlab-ci/virtme-scripts/run-weston-tests.sh --qemu-opts -m 4096 -smp ${QEMU_SMP}
|
2020-06-03 16:02:34 +03:00
|
|
|
- TEST_RES=$(cat $TESTS_RES_PATH)
|
|
|
|
- rm $TESTS_RES_PATH
|
|
|
|
- cp -R /weston-virtme ./
|
2021-06-22 02:16:05 +03:00
|
|
|
- rm weston-virtme/${KERNEL_IMAGE}
|
2020-06-03 16:02:34 +03:00
|
|
|
- exit $TEST_RES
|
2018-07-22 17:38:54 +03:00
|
|
|
artifacts:
|
2019-06-14 16:00:07 +03:00
|
|
|
name: weston-$CI_COMMIT_SHA
|
2018-07-22 17:38:54 +03:00
|
|
|
when: always
|
|
|
|
paths:
|
2021-05-14 13:34:49 +03:00
|
|
|
- $BUILDDIR/*.png
|
|
|
|
- $BUILDDIR/meson-logs
|
2021-11-29 21:41:20 +03:00
|
|
|
- $BUILDDIR/dmesg.log
|
2021-05-14 13:34:49 +03:00
|
|
|
- $BUILDDIR/weston-virtme
|
|
|
|
- $PREFIX
|
2021-02-08 14:32:35 +03:00
|
|
|
reports:
|
2023-06-21 15:53:45 +03:00
|
|
|
junit: $BUILDDIR/meson-logs/testlog-junit.xml
|
2019-06-14 16:00:07 +03:00
|
|
|
|
2021-06-21 23:34:43 +03:00
|
|
|
# Same as above, but without running any tests.
|
2021-05-12 17:08:29 +03:00
|
|
|
.build-no-test:
|
2021-06-22 00:25:41 +03:00
|
|
|
extends:
|
2024-06-07 15:45:17 +03:00
|
|
|
- .default-rules
|
2020-12-02 23:30:34 +03:00
|
|
|
script:
|
|
|
|
- cd "$BUILDDIR"
|
2023-04-28 15:53:32 +03:00
|
|
|
- meson --prefix="$PREFIX" --wrap-mode=nofallback ${MESON_OPTIONS} ..
|
2021-05-18 15:56:48 +03:00
|
|
|
- ninja -k0 -j${FDO_CI_CONCURRENT:-4}
|
2020-12-02 23:30:34 +03:00
|
|
|
- ninja install
|
|
|
|
- ninja clean
|
|
|
|
artifacts:
|
|
|
|
name: weston-$CI_COMMIT_SHA
|
|
|
|
when: always
|
|
|
|
paths:
|
2021-05-14 13:34:49 +03:00
|
|
|
- $BUILDDIR/meson-logs
|
|
|
|
- $PREFIX
|
2020-12-02 23:30:34 +03:00
|
|
|
|
2021-06-22 00:25:41 +03:00
|
|
|
# OS/architecture-specific variants
|
2023-05-17 14:25:16 +03:00
|
|
|
.build-env-debian-lts-x86_64:
|
2021-06-22 00:25:41 +03:00
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .debian-lts-x86_64
|
2021-06-22 00:25:41 +03:00
|
|
|
- .fdo.suffixed-image@debian
|
|
|
|
- .build-env
|
2021-06-22 02:08:20 +03:00
|
|
|
needs:
|
2023-05-17 14:25:16 +03:00
|
|
|
- job: x86_64-debian-lts-container_prep
|
2021-06-22 02:08:20 +03:00
|
|
|
artifacts: false
|
2021-06-22 00:25:41 +03:00
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
.build-env-debian-x86_64:
|
|
|
|
extends:
|
|
|
|
- .debian-x86_64
|
|
|
|
- .fdo.suffixed-image@debian
|
|
|
|
- .build-env
|
|
|
|
needs:
|
|
|
|
- job: x86_64-debian-container_prep
|
|
|
|
artifacts: false
|
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
.build-env-debian-lts-armv7:
|
2021-06-22 02:53:07 +03:00
|
|
|
tags:
|
|
|
|
- aarch64
|
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .debian-lts-armv7
|
2021-06-22 02:53:07 +03:00
|
|
|
- .fdo.suffixed-image@debian
|
|
|
|
- .build-env
|
|
|
|
needs:
|
2023-05-17 14:25:16 +03:00
|
|
|
- job: armv7-debian-lts-container_prep
|
2021-06-22 02:53:07 +03:00
|
|
|
artifacts: false
|
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
.build-env-debian-armv7:
|
|
|
|
tags:
|
|
|
|
- aarch64
|
|
|
|
extends:
|
|
|
|
- .debian-armv7
|
|
|
|
- .fdo.suffixed-image@debian
|
|
|
|
- .build-env
|
|
|
|
needs:
|
|
|
|
- job: armv7-debian-container_prep
|
|
|
|
artifacts: false
|
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
.build-env-debian-lts-aarch64:
|
2021-06-22 02:22:49 +03:00
|
|
|
tags:
|
|
|
|
- aarch64
|
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .debian-lts-aarch64
|
2021-06-22 02:22:49 +03:00
|
|
|
- .fdo.suffixed-image@debian
|
|
|
|
- .build-env
|
|
|
|
needs:
|
2023-05-17 14:25:16 +03:00
|
|
|
- job: aarch64-debian-lts-container_prep
|
2021-06-22 02:22:49 +03:00
|
|
|
artifacts: false
|
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
.build-env-debian-aarch64:
|
|
|
|
tags:
|
|
|
|
- aarch64
|
|
|
|
extends:
|
|
|
|
- .debian-aarch64
|
|
|
|
- .fdo.suffixed-image@debian
|
|
|
|
- .build-env
|
|
|
|
needs:
|
|
|
|
- job: aarch64-debian-container_prep
|
|
|
|
artifacts: false
|
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
.test-env-debian-lts-x86_64:
|
2021-06-22 00:25:41 +03:00
|
|
|
tags:
|
|
|
|
- kvm
|
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .build-env-debian-lts-x86_64
|
2021-06-22 00:25:41 +03:00
|
|
|
- .build-and-test
|
2021-06-22 02:08:20 +03:00
|
|
|
needs:
|
2023-05-17 14:25:16 +03:00
|
|
|
- job: x86_64-debian-lts-container_prep
|
2021-06-22 02:08:20 +03:00
|
|
|
artifacts: false
|
2021-06-22 00:25:41 +03:00
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
.test-env-debian-x86_64:
|
|
|
|
tags:
|
|
|
|
- kvm
|
|
|
|
extends:
|
|
|
|
- .build-env-debian-x86_64
|
|
|
|
- .build-and-test
|
|
|
|
needs:
|
|
|
|
- job: x86_64-debian-container_prep
|
|
|
|
artifacts: false
|
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
.test-env-debian-lts-aarch64:
|
2021-06-22 02:33:01 +03:00
|
|
|
tags:
|
|
|
|
- kvm-aarch64
|
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .build-env-debian-lts-aarch64
|
2021-06-22 02:33:01 +03:00
|
|
|
- .build-and-test
|
|
|
|
needs:
|
2023-05-17 14:25:16 +03:00
|
|
|
- job: aarch64-debian-lts-container_prep
|
2021-06-22 02:33:01 +03:00
|
|
|
artifacts: false
|
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
.test-env-debian-aarch64:
|
|
|
|
tags:
|
|
|
|
- kvm-aarch64
|
|
|
|
extends:
|
|
|
|
- .build-env-debian-aarch64
|
|
|
|
- .build-and-test
|
|
|
|
needs:
|
|
|
|
- job: aarch64-debian-container_prep
|
|
|
|
artifacts: false
|
|
|
|
|
2021-06-22 00:25:41 +03:00
|
|
|
# Full build, used for testing under KVM.
|
2021-06-22 02:33:01 +03:00
|
|
|
.build-options-full:
|
2021-06-22 12:58:39 +03:00
|
|
|
stage: "Full build and test"
|
2019-10-20 18:19:03 +03:00
|
|
|
variables:
|
|
|
|
MESON_OPTIONS: >
|
2019-11-21 16:06:30 +03:00
|
|
|
-Doptimization=0
|
|
|
|
-Db_coverage=true
|
2019-10-20 18:19:03 +03:00
|
|
|
-Dwerror=true
|
2021-03-03 15:31:54 +03:00
|
|
|
-Dtest-skip-is-failure=true
|
2019-11-21 16:06:30 +03:00
|
|
|
after_script:
|
2021-05-12 14:44:17 +03:00
|
|
|
- ninja -C "$BUILDDIR" coverage-html > "$BUILDDIR/meson-logs/ninja-coverage-html.txt"
|
2021-05-14 13:34:49 +03:00
|
|
|
- ninja -C "$BUILDDIR" coverage-xml
|
2019-10-20 18:19:03 +03:00
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
x86_64-debian-lts-full-build:
|
2021-06-22 02:33:01 +03:00
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .test-env-debian-lts-x86_64
|
2021-06-22 02:33:01 +03:00
|
|
|
- .build-options-full
|
2023-05-17 15:43:20 +03:00
|
|
|
|
|
|
|
x86_64-debian-full-build:
|
|
|
|
extends:
|
|
|
|
- .test-env-debian-x86_64
|
|
|
|
- .build-options-full
|
2021-12-02 16:51:55 +03:00
|
|
|
artifacts:
|
|
|
|
reports:
|
2022-06-06 21:56:19 +03:00
|
|
|
coverage_report:
|
|
|
|
coverage_format: cobertura
|
|
|
|
path: $BUILDDIR/meson-logs/coverage.xml
|
2021-06-22 02:33:01 +03:00
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
aarch64-debian-lts-full-build:
|
2021-06-22 02:33:01 +03:00
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .test-env-debian-lts-aarch64
|
2021-06-22 02:33:01 +03:00
|
|
|
- .build-options-full
|
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
aarch64-debian-full-build:
|
|
|
|
extends:
|
|
|
|
- .test-env-debian-aarch64
|
|
|
|
- .build-options-full
|
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
x86_64-clang-debian-lts-full-build:
|
2021-08-03 15:11:51 +03:00
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .test-env-debian-lts-x86_64
|
2021-08-03 15:11:51 +03:00
|
|
|
- .build-with-clang
|
|
|
|
- .build-options-full
|
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
x86_64-clang-debian-full-build:
|
|
|
|
extends:
|
|
|
|
- .test-env-debian-x86_64
|
|
|
|
- .build-with-clang
|
|
|
|
- .build-options-full
|
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
aarch64-clang-debian-lts-full-build:
|
2021-08-03 15:11:51 +03:00
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .test-env-debian-lts-aarch64
|
2021-08-03 15:11:51 +03:00
|
|
|
- .build-with-clang
|
|
|
|
- .build-options-full
|
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
aarch64-clang-debian-full-build:
|
|
|
|
extends:
|
|
|
|
- .test-env-debian-aarch64
|
|
|
|
- .build-with-clang
|
|
|
|
- .build-options-full
|
|
|
|
|
2021-06-22 00:25:41 +03:00
|
|
|
# Docs should be invariant on all architectures, so we only do it on Debian
|
|
|
|
# x86-64.
|
2021-06-21 23:38:06 +03:00
|
|
|
docs-build:
|
2021-06-22 12:58:39 +03:00
|
|
|
stage: "Other builds"
|
2020-12-02 23:30:34 +03:00
|
|
|
variables:
|
|
|
|
MESON_OPTIONS: >
|
|
|
|
-Dwerror=true
|
|
|
|
-Ddoc=true
|
2021-06-22 00:25:41 +03:00
|
|
|
extends:
|
2023-05-17 15:43:20 +03:00
|
|
|
- .build-env-debian-x86_64
|
2021-06-22 00:25:41 +03:00
|
|
|
- .build-no-test
|
2020-12-02 23:30:34 +03:00
|
|
|
|
2021-06-22 00:25:41 +03:00
|
|
|
# Building without gl-renderer, to make sure this keeps working.
|
2021-06-22 02:22:49 +03:00
|
|
|
.build-options-no-gl:
|
2021-06-22 12:58:39 +03:00
|
|
|
stage: "No-GL build and test"
|
2019-10-20 18:19:03 +03:00
|
|
|
variables:
|
|
|
|
MESON_OPTIONS: >
|
|
|
|
-Dsimple-clients=damage,im,shm,touch,dmabuf-v4l
|
|
|
|
-Drenderer-gl=false
|
|
|
|
-Dremoting=false
|
2020-07-15 12:01:04 +03:00
|
|
|
-Dpipewire=false
|
2019-10-20 18:19:03 +03:00
|
|
|
-Dwerror=true
|
2021-09-12 14:48:41 +03:00
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
x86_64-debian-lts-no-gl-build:
|
2021-06-22 02:22:49 +03:00
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .test-env-debian-lts-x86_64
|
2021-06-22 02:22:49 +03:00
|
|
|
- .build-options-no-gl
|
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
x86_64-debian-no-gl-build:
|
|
|
|
extends:
|
|
|
|
- .test-env-debian-x86_64
|
|
|
|
- .build-options-no-gl
|
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
armv7-debian-lts-no-gl-build:
|
2021-06-22 02:53:07 +03:00
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .build-env-debian-lts-armv7
|
2021-06-22 02:53:07 +03:00
|
|
|
- .build-no-test
|
|
|
|
- .build-options-no-gl
|
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
armv7-debian-no-gl-build:
|
|
|
|
extends:
|
|
|
|
- .build-env-debian-armv7
|
|
|
|
- .build-no-test
|
|
|
|
- .build-options-no-gl
|
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
armv7-clang-debian-lts-no-gl-build:
|
2021-08-03 15:11:51 +03:00
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .build-env-debian-lts-armv7
|
2021-08-03 15:11:51 +03:00
|
|
|
- .build-with-clang
|
|
|
|
- .build-no-test
|
|
|
|
- .build-options-no-gl
|
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
armv7-clang-debian-no-gl-build:
|
|
|
|
extends:
|
|
|
|
- .build-env-debian-armv7
|
|
|
|
- .build-with-clang
|
|
|
|
- .build-no-test
|
|
|
|
- .build-options-no-gl
|
|
|
|
|
2023-05-17 14:25:16 +03:00
|
|
|
aarch64-debian-lts-no-gl-build:
|
2021-06-22 02:22:49 +03:00
|
|
|
extends:
|
2023-05-17 14:25:16 +03:00
|
|
|
- .test-env-debian-lts-aarch64
|
2021-06-22 02:22:49 +03:00
|
|
|
- .build-options-no-gl
|
2019-10-20 18:19:03 +03:00
|
|
|
|
2023-05-17 15:43:20 +03:00
|
|
|
aarch64-debian-no-gl-build:
|
|
|
|
extends:
|
|
|
|
- .test-env-debian-aarch64
|
|
|
|
- .build-options-no-gl
|
|
|
|
|
2021-06-21 23:34:43 +03:00
|
|
|
# Expose docs and coverage reports, so we can show users any changes to these
|
|
|
|
# inside their merge requests, letting us check them before merge.
|
|
|
|
#
|
|
|
|
# This does not build the docs or coverage information itself, but just reuses
|
|
|
|
# the docs and coverage information from the x86-64 Debian builds as the
|
|
|
|
# canonical sources of coverage information; the docs themselves should be
|
|
|
|
# invariant across any architecture or OS.
|
2019-11-21 16:06:30 +03:00
|
|
|
docs-and-coverage:
|
2021-07-28 18:54:19 +03:00
|
|
|
extends:
|
2024-06-07 15:45:17 +03:00
|
|
|
- .default-rules
|
2023-05-17 15:43:20 +03:00
|
|
|
- .debian-x86_64
|
2021-06-22 00:25:41 +03:00
|
|
|
- .fdo.suffixed-image@debian
|
2019-11-26 15:14:58 +03:00
|
|
|
stage: pages
|
2021-06-22 02:08:20 +03:00
|
|
|
needs:
|
|
|
|
- job: docs-build
|
|
|
|
artifacts: true
|
2023-05-17 15:43:20 +03:00
|
|
|
- job: x86_64-debian-full-build
|
2021-06-22 02:08:20 +03:00
|
|
|
artifacts: true
|
2021-04-15 23:43:37 +03:00
|
|
|
timeout: 5m
|
2019-11-26 15:14:58 +03:00
|
|
|
script:
|
2021-06-21 23:38:06 +03:00
|
|
|
- mv prefix-weston-docs-build/share/doc/weston Documentation
|
2023-05-17 15:43:20 +03:00
|
|
|
- mv build-weston-x86_64-debian-full-build/meson-logs/coveragereport Test_Coverage
|
2021-03-15 12:20:17 +03:00
|
|
|
- rm Test_Coverage/gcov.css
|
|
|
|
- cp doc/style/lcov-style.css Test_Coverage/gcov.css
|
|
|
|
- cp doc/style/*.png Test_Coverage/
|
2019-11-26 15:14:58 +03:00
|
|
|
- rm -rf build-* prefix-*
|
|
|
|
artifacts:
|
2019-11-21 16:06:30 +03:00
|
|
|
expose_as: 'Documentation preview and test coverage report'
|
2019-11-26 15:14:58 +03:00
|
|
|
paths:
|
|
|
|
- Documentation/
|
2019-11-21 16:06:30 +03:00
|
|
|
- Test_Coverage/
|
2019-11-26 15:14:58 +03:00
|
|
|
|
2021-06-21 23:34:43 +03:00
|
|
|
# Generate the documentation for https://wayland.pages.freedesktop.org/weston/
|
|
|
|
# Anything under public/ is published to this URL.
|
|
|
|
#
|
2024-06-07 15:45:17 +03:00
|
|
|
# Does not inherit .default-rules as it should only run in our default branch for
|
2021-06-21 23:34:43 +03:00
|
|
|
# the upstream repo.
|
2019-06-14 16:00:07 +03:00
|
|
|
pages:
|
2021-07-28 21:42:52 +03:00
|
|
|
extends:
|
2023-05-17 15:43:20 +03:00
|
|
|
- .debian-x86_64
|
2021-06-22 00:25:41 +03:00
|
|
|
- .fdo.suffixed-image@debian
|
2019-06-14 16:00:07 +03:00
|
|
|
stage: pages
|
2021-04-15 23:43:37 +03:00
|
|
|
timeout: 5m
|
2021-06-22 02:08:20 +03:00
|
|
|
needs:
|
|
|
|
- job: docs-build
|
|
|
|
artifacts: true
|
2019-06-14 16:00:07 +03:00
|
|
|
script:
|
2021-06-21 23:38:06 +03:00
|
|
|
- export PREFIX=$(pwd)/prefix-weston-docs-build
|
2019-06-14 16:00:07 +03:00
|
|
|
- mkdir public
|
2019-06-25 17:17:08 +03:00
|
|
|
- cp -R $PREFIX/share/doc/weston/* public/
|
2019-06-14 16:00:07 +03:00
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- public
|
2021-07-31 17:11:35 +03:00
|
|
|
rules:
|
2024-06-05 13:35:06 +03:00
|
|
|
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_PATH == "wayland/weston" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH'
|
2021-07-31 17:11:35 +03:00
|
|
|
when: on_success
|
|
|
|
- when: never
|