1a46c0ec8Sopenharmony_ci# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0 filetype=yaml: 2a46c0ec8Sopenharmony_ci 3a46c0ec8Sopenharmony_ci######################################## 4a46c0ec8Sopenharmony_ci# # 5a46c0ec8Sopenharmony_ci# THIS FILE IS GENERATED, DO NOT EDIT # 6a46c0ec8Sopenharmony_ci# # 7a46c0ec8Sopenharmony_ci######################################## 8a46c0ec8Sopenharmony_ci 9a46c0ec8Sopenharmony_ci# To change the gitlab CI, edit .gitlab-ci/ci.template and/or .gitlab-ci/config.yaml 10a46c0ec8Sopenharmony_ci# and run ci-fairy generate-template. For details, see 11a46c0ec8Sopenharmony_ci# https://freedesktop.pages.freedesktop.org/ci-templates/ci-fairy.html#templating-gitlab-ci-yml 12a46c0ec8Sopenharmony_ci 13a46c0ec8Sopenharmony_ci# This is a bit complicated for two reasons: 14a46c0ec8Sopenharmony_ci# - we really want to run dnf/apt/... only once, updating on the test runner for 15a46c0ec8Sopenharmony_ci# each job takes forever. So we create a container image for each distribution 16a46c0ec8Sopenharmony_ci# tested, then run the tests on this container image. 17a46c0ec8Sopenharmony_ci# 18a46c0ec8Sopenharmony_ci# This is handled by the ci-templates, ensuring containers are only rebuilt 19a46c0ec8Sopenharmony_ci# when the TAG changes. 20a46c0ec8Sopenharmony_ci# 21a46c0ec8Sopenharmony_ci# - GitLab only allows one script: set per job but we have a bunch of commands 22a46c0ec8Sopenharmony_ci# we need to re-run for each build (meson && ninja && etc). YAML cannot merge 23a46c0ec8Sopenharmony_ci# arrays so we're screwed. 24a46c0ec8Sopenharmony_ci# 25a46c0ec8Sopenharmony_ci# So instead we use a default_build template and override everything with 26a46c0ec8Sopenharmony_ci# variables. The only two variables that matter: 27a46c0ec8Sopenharmony_ci# MESON_ARGS=-Denable-something=true 28a46c0ec8Sopenharmony_ci# NINJA_ARGS=dist ... to run 'ninja -C builddir dist' 29a46c0ec8Sopenharmony_ci# Note that you cannot use scripts: in any target if you expect default_build 30a46c0ec8Sopenharmony_ci# to work. 31a46c0ec8Sopenharmony_ci# 32a46c0ec8Sopenharmony_ci# 33a46c0ec8Sopenharmony_ci# All jobs must follow the naming scheme of 34a46c0ec8Sopenharmony_ci# <distribution>:<version>@activity: 35a46c0ec8Sopenharmony_ci# e.g. fedora:31@build-default 36a46c0ec8Sopenharmony_ci 37a46c0ec8Sopenharmony_ci.templates_sha: &template_sha dd90ac0d7a03b574eb4f18d7358083f0c97825f3 38a46c0ec8Sopenharmony_ci 39a46c0ec8Sopenharmony_ciinclude: 40a46c0ec8Sopenharmony_ci - project: 'freedesktop/ci-templates' 41a46c0ec8Sopenharmony_ci ref: *template_sha 42a46c0ec8Sopenharmony_ci file: 43a46c0ec8Sopenharmony_ci - '/templates/ci-fairy.yml' 44a46c0ec8Sopenharmony_ci # Alpine container builder template 45a46c0ec8Sopenharmony_ci - '/templates/alpine.yml' 46a46c0ec8Sopenharmony_ci # Arch container builder template 47a46c0ec8Sopenharmony_ci - '/templates/arch.yml' 48a46c0ec8Sopenharmony_ci # Debian container builder template 49a46c0ec8Sopenharmony_ci - '/templates/debian.yml' 50a46c0ec8Sopenharmony_ci # Fedora container builder template 51a46c0ec8Sopenharmony_ci - '/templates/fedora.yml' 52a46c0ec8Sopenharmony_ci # Freebsd container builder template 53a46c0ec8Sopenharmony_ci - '/templates/freebsd.yml' 54a46c0ec8Sopenharmony_ci # Ubuntu container builder template 55a46c0ec8Sopenharmony_ci - '/templates/ubuntu.yml' 56a46c0ec8Sopenharmony_ci 57a46c0ec8Sopenharmony_ciworkflow: 58a46c0ec8Sopenharmony_ci rules: 59a46c0ec8Sopenharmony_ci - if: $CI_PIPELINE_SOURCE == 'merge_request_event' 60a46c0ec8Sopenharmony_ci - if: $CI_PIPELINE_SOURCE == 'push' 61a46c0ec8Sopenharmony_ci 62a46c0ec8Sopenharmony_cistages: 63a46c0ec8Sopenharmony_ci - sanity check # CI/commit checks 64a46c0ec8Sopenharmony_ci - prep # prep work like rebuilding the container images if there is a change 65a46c0ec8Sopenharmony_ci - build # for actually building and testing things in a container 66a46c0ec8Sopenharmony_ci - test-suite # for running the test suite in a VM 67a46c0ec8Sopenharmony_ci - test-suite-no-libwacom # for running the test suite in a VM (libwacom disabled) 68a46c0ec8Sopenharmony_ci - valgrind # for running the test suite under valgrind in a VM 69a46c0ec8Sopenharmony_ci - distro # distribs test 70a46c0ec8Sopenharmony_ci - deploy # trigger wayland's website generation 71a46c0ec8Sopenharmony_ci - container_clean # clean up unused container images (scheduled jobs only) 72a46c0ec8Sopenharmony_ci 73a46c0ec8Sopenharmony_civariables: 74a46c0ec8Sopenharmony_ci ############################################################################### 75a46c0ec8Sopenharmony_ci # This is the list of packages required to build libinput with the default # 76a46c0ec8Sopenharmony_ci # configuration. # 77a46c0ec8Sopenharmony_ci # # 78a46c0ec8Sopenharmony_ci # Run dnf install/apt-get install/.. with the list of packages for your # 79a46c0ec8Sopenharmony_ci # distribution # 80a46c0ec8Sopenharmony_ci # # 81a46c0ec8Sopenharmony_ci # See the documentation here: # 82a46c0ec8Sopenharmony_ci # https://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html # 83a46c0ec8Sopenharmony_ci ############################################################################### 84a46c0ec8Sopenharmony_ci FEDORA_PACKAGES: 'git-core gcc gcc-c++ pkgconf-pkg-config meson check-devel libudev-devel libevdev-devel doxygen graphviz python3-sphinx python3-recommonmark python3-sphinx_rtd_theme python3-pytest-xdist libwacom-devel cairo-devel gtk4-devel glib2-devel mtdev-devel diffutils wayland-protocols-devel black clang-analyzer jq rpmdevtools valgrind systemd-udev qemu-img qemu-system-x86-core qemu-system-aarch64-core jq python3-click python3-rich' 85a46c0ec8Sopenharmony_ci DEBIAN_PACKAGES: 'git gcc g++ pkg-config meson check libudev-dev libevdev-dev doxygen graphviz python3-sphinx python3-recommonmark python3-sphinx-rtd-theme python3-pytest-xdist libwacom-dev libcairo2-dev libgtk-3-dev libglib2.0-dev libmtdev-dev curl' 86a46c0ec8Sopenharmony_ci UBUNTU_PACKAGES: 'git gcc g++ pkg-config meson check libudev-dev libevdev-dev doxygen graphviz python3-sphinx python3-recommonmark python3-sphinx-rtd-theme python3-pytest-xdist libwacom-dev libcairo2-dev libgtk-3-dev libglib2.0-dev libmtdev-dev' 87a46c0ec8Sopenharmony_ci ARCH_PACKAGES: 'git gcc pkgconfig meson check libsystemd libevdev doxygen graphviz python-sphinx python-recommonmark python-sphinx_rtd_theme python-pytest-xdist libwacom gtk4 mtdev diffutils wayland-protocols' 88a46c0ec8Sopenharmony_ci ALPINE_PACKAGES: 'git gcc build-base pkgconfig meson check-dev eudev-dev libevdev-dev libwacom-dev cairo-dev gtk4.0-dev mtdev-dev bash' 89a46c0ec8Sopenharmony_ci FREEBSD_PACKAGES: 'git pkgconf meson libepoll-shim libudev-devd libevdev libwacom gtk3 libmtdev bash wayland' 90a46c0ec8Sopenharmony_ci ############################ end of package lists ############################# 91a46c0ec8Sopenharmony_ci 92a46c0ec8Sopenharmony_ci # these tags should be updated each time the list of packages is updated 93a46c0ec8Sopenharmony_ci # changing these will force rebuilding the associated image 94a46c0ec8Sopenharmony_ci # Note: these tags have no meaning and are not tied to a particular 95a46c0ec8Sopenharmony_ci # libinput version 96a46c0ec8Sopenharmony_ci FEDORA_TAG: '2023-02-13.0' 97a46c0ec8Sopenharmony_ci DEBIAN_TAG: '2023-02-13.0' 98a46c0ec8Sopenharmony_ci UBUNTU_TAG: '2023-02-13.0' 99a46c0ec8Sopenharmony_ci ARCH_TAG: '2023-02-13.0' 100a46c0ec8Sopenharmony_ci ALPINE_TAG: '2023-02-13.0' 101a46c0ec8Sopenharmony_ci FREEBSD_TAG: '2023-02-13.0' 102a46c0ec8Sopenharmony_ci 103a46c0ec8Sopenharmony_ci FDO_UPSTREAM_REPO: libinput/libinput 104a46c0ec8Sopenharmony_ci 105a46c0ec8Sopenharmony_ci MESON_BUILDDIR: "build dir" 106a46c0ec8Sopenharmony_ci NINJA_ARGS: '' 107a46c0ec8Sopenharmony_ci MESON_ARGS: '' 108a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '--no-suite=hardware' 109a46c0ec8Sopenharmony_ci 110a46c0ec8Sopenharmony_ci # udev isn't available/working properly in the containers 111a46c0ec8Sopenharmony_ci UDEV_NOT_AVAILABLE: 1 112a46c0ec8Sopenharmony_ci GIT_DEPTH: 1 113a46c0ec8Sopenharmony_ci 114a46c0ec8Sopenharmony_ci.policy: 115a46c0ec8Sopenharmony_ci retry: 116a46c0ec8Sopenharmony_ci max: 2 117a46c0ec8Sopenharmony_ci when: 118a46c0ec8Sopenharmony_ci - runner_system_failure 119a46c0ec8Sopenharmony_ci - stuck_or_timeout_failure 120a46c0ec8Sopenharmony_ci # cancel run when a newer version is pushed to the branch 121a46c0ec8Sopenharmony_ci interruptible: true 122a46c0ec8Sopenharmony_ci dependencies: [] 123a46c0ec8Sopenharmony_ci 124a46c0ec8Sopenharmony_ci.default_artifacts: 125a46c0ec8Sopenharmony_ci artifacts: 126a46c0ec8Sopenharmony_ci name: "meson-logs-$CI_JOB_NAME" 127a46c0ec8Sopenharmony_ci when: always 128a46c0ec8Sopenharmony_ci expire_in: 1 week 129a46c0ec8Sopenharmony_ci paths: 130a46c0ec8Sopenharmony_ci - $MESON_BUILDDIR/meson-logs 131a46c0ec8Sopenharmony_ci reports: 132a46c0ec8Sopenharmony_ci junit: $MESON_BUILDDIR/*junit*.xml 133a46c0ec8Sopenharmony_ci 134a46c0ec8Sopenharmony_ci 135a46c0ec8Sopenharmony_ci################################################################# 136a46c0ec8Sopenharmony_ci# # 137a46c0ec8Sopenharmony_ci# sanity check stage # 138a46c0ec8Sopenharmony_ci# # 139a46c0ec8Sopenharmony_ci################################################################# 140a46c0ec8Sopenharmony_ci 141a46c0ec8Sopenharmony_cifail-if-fork-is-not-public: 142a46c0ec8Sopenharmony_ci stage: sanity check 143a46c0ec8Sopenharmony_ci script: 144a46c0ec8Sopenharmony_ci - | 145a46c0ec8Sopenharmony_ci if [ $CI_PROJECT_VISIBILITY != "public" ]; then 146a46c0ec8Sopenharmony_ci echo "*************************************************************************************" 147a46c0ec8Sopenharmony_ci echo "Project visibility must be set to 'public'" 148a46c0ec8Sopenharmony_ci echo "Change this in $CI_PROJECT_URL/edit under 'Visibility, project features, permissions'" 149a46c0ec8Sopenharmony_ci echo "*************************************************************************************" 150a46c0ec8Sopenharmony_ci exit 1 151a46c0ec8Sopenharmony_ci fi 152a46c0ec8Sopenharmony_ci except: 153a46c0ec8Sopenharmony_ci - main@libinput/libinput 154a46c0ec8Sopenharmony_ci 155a46c0ec8Sopenharmony_ci# Re-generate the CI script and make sure it's the one currently checked in 156a46c0ec8Sopenharmony_ci# If this job fails, re-generate the gitlab-ci.yml script, see 157a46c0ec8Sopenharmony_ci# $SRCDIR/.gitlab-ci/generate-gitlab-ci.py 158a46c0ec8Sopenharmony_ci# 159a46c0ec8Sopenharmony_cicheck-ci-script: 160a46c0ec8Sopenharmony_ci extends: 161a46c0ec8Sopenharmony_ci - .fdo.ci-fairy 162a46c0ec8Sopenharmony_ci stage: sanity check 163a46c0ec8Sopenharmony_ci script: 164a46c0ec8Sopenharmony_ci - ci-fairy generate-template --verify && exit 0 || true 165a46c0ec8Sopenharmony_ci - > 166a46c0ec8Sopenharmony_ci printf "%s\n" \ 167a46c0ec8Sopenharmony_ci "Committed gitlab-ci.yml differs from generated gitlab-ci.yml. Please verify" \ 168a46c0ec8Sopenharmony_ci "https://wayland.freedesktop.org/libinput/doc/latest/contributing.html" 169a46c0ec8Sopenharmony_ci - exit 1 170a46c0ec8Sopenharmony_ci 171a46c0ec8Sopenharmony_ci# 172a46c0ec8Sopenharmony_ci# Verify that commit messages are as expected, etc. 173a46c0ec8Sopenharmony_ci# 174a46c0ec8Sopenharmony_ci 175a46c0ec8Sopenharmony_cicheck-commit: 176a46c0ec8Sopenharmony_ci extends: 177a46c0ec8Sopenharmony_ci - .fdo.ci-fairy 178a46c0ec8Sopenharmony_ci stage: sanity check 179a46c0ec8Sopenharmony_ci script: 180a46c0ec8Sopenharmony_ci - ci-fairy -vv check-commits --junit-xml=results.xml && exit 0 || true 181a46c0ec8Sopenharmony_ci - > 182a46c0ec8Sopenharmony_ci printf "%s\n" \ 183a46c0ec8Sopenharmony_ci "Error checking commit format. Please verify" \ 184a46c0ec8Sopenharmony_ci "https://wayland.freedesktop.org/libinput/doc/latest/contributing.html" 185a46c0ec8Sopenharmony_ci - exit 1 186a46c0ec8Sopenharmony_ci except: 187a46c0ec8Sopenharmony_ci - main@libinput/libinput 188a46c0ec8Sopenharmony_ci variables: 189a46c0ec8Sopenharmony_ci GIT_DEPTH: 100 190a46c0ec8Sopenharmony_ci artifacts: 191a46c0ec8Sopenharmony_ci reports: 192a46c0ec8Sopenharmony_ci junit: results.xml 193a46c0ec8Sopenharmony_ci 194a46c0ec8Sopenharmony_ci 195a46c0ec8Sopenharmony_ci# 196a46c0ec8Sopenharmony_ci# Check for trailing whitespaces 197a46c0ec8Sopenharmony_ci# 198a46c0ec8Sopenharmony_ci 199a46c0ec8Sopenharmony_cicheck-whitespace: 200a46c0ec8Sopenharmony_ci extends: 201a46c0ec8Sopenharmony_ci - .fdo.ci-fairy 202a46c0ec8Sopenharmony_ci stage: sanity check 203a46c0ec8Sopenharmony_ci script: 204a46c0ec8Sopenharmony_ci # remove trailing whitespaces 205a46c0ec8Sopenharmony_ci - sed -i 's/ *$//' $(git ls-files) 206a46c0ec8Sopenharmony_ci - git diff --exit-code || (echo "ERROR - Trailing whitespaces in patchset, please fix" && false) 207a46c0ec8Sopenharmony_ci - sed -i 's/\t*$//' $(git ls-files) 208a46c0ec8Sopenharmony_ci - git diff --exit-code || (echo "ERROR - Trailing tabs in patchset, please fix" && false) 209a46c0ec8Sopenharmony_ci # search for tab after space 210a46c0ec8Sopenharmony_ci - sed -i 's/ \t//' $(git ls-files) 211a46c0ec8Sopenharmony_ci - git diff --exit-code || (echo "ERROR - Tab after space in patchset, please fix" && false) 212a46c0ec8Sopenharmony_ci # search for duplicated empty lines 213a46c0ec8Sopenharmony_ci - sed -i '/^$/N;/^\n$/D' $(git ls-files src/*.{h,c} tools/*.{h,c} udev/*.c) 214a46c0ec8Sopenharmony_ci - git diff --exit-code || (echo "ERROR - Duplicated empty lines, please fix" && false) 215a46c0ec8Sopenharmony_ci 216a46c0ec8Sopenharmony_ci 217a46c0ec8Sopenharmony_ci################################################################# 218a46c0ec8Sopenharmony_ci# # 219a46c0ec8Sopenharmony_ci# prep stage # 220a46c0ec8Sopenharmony_ci# # 221a46c0ec8Sopenharmony_ci################################################################# 222a46c0ec8Sopenharmony_ci 223a46c0ec8Sopenharmony_cifedora:37@container-prep: 224a46c0ec8Sopenharmony_ci extends: 225a46c0ec8Sopenharmony_ci - .fdo.container-build@fedora 226a46c0ec8Sopenharmony_ci - .policy 227a46c0ec8Sopenharmony_ci stage: prep 228a46c0ec8Sopenharmony_ci variables: 229a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 230a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '37' 231a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_PACKAGES: $FEDORA_PACKAGES 232a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $FEDORA_TAG 233a46c0ec8Sopenharmony_ci 234a46c0ec8Sopenharmony_cifedora:38@container-prep: 235a46c0ec8Sopenharmony_ci extends: 236a46c0ec8Sopenharmony_ci - .fdo.container-build@fedora 237a46c0ec8Sopenharmony_ci - .policy 238a46c0ec8Sopenharmony_ci stage: prep 239a46c0ec8Sopenharmony_ci variables: 240a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 241a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '38' 242a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_PACKAGES: $FEDORA_PACKAGES 243a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $FEDORA_TAG 244a46c0ec8Sopenharmony_ci 245a46c0ec8Sopenharmony_cidebian:stable@container-prep: 246a46c0ec8Sopenharmony_ci extends: 247a46c0ec8Sopenharmony_ci - .fdo.container-build@debian 248a46c0ec8Sopenharmony_ci - .policy 249a46c0ec8Sopenharmony_ci stage: prep 250a46c0ec8Sopenharmony_ci variables: 251a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 252a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: 'stable' 253a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_PACKAGES: $DEBIAN_PACKAGES 254a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $DEBIAN_TAG 255a46c0ec8Sopenharmony_ci 256a46c0ec8Sopenharmony_ciubuntu:22.04@container-prep: 257a46c0ec8Sopenharmony_ci extends: 258a46c0ec8Sopenharmony_ci - .fdo.container-build@ubuntu 259a46c0ec8Sopenharmony_ci - .policy 260a46c0ec8Sopenharmony_ci stage: prep 261a46c0ec8Sopenharmony_ci variables: 262a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 263a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '22.04' 264a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_PACKAGES: $UBUNTU_PACKAGES 265a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $UBUNTU_TAG 266a46c0ec8Sopenharmony_ci 267a46c0ec8Sopenharmony_ciarch:rolling@container-prep: 268a46c0ec8Sopenharmony_ci extends: 269a46c0ec8Sopenharmony_ci - .fdo.container-build@arch 270a46c0ec8Sopenharmony_ci - .policy 271a46c0ec8Sopenharmony_ci stage: prep 272a46c0ec8Sopenharmony_ci variables: 273a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 274a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: 'rolling' 275a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_PACKAGES: $ARCH_PACKAGES 276a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $ARCH_TAG 277a46c0ec8Sopenharmony_ci 278a46c0ec8Sopenharmony_cialpine:latest@container-prep: 279a46c0ec8Sopenharmony_ci extends: 280a46c0ec8Sopenharmony_ci - .fdo.container-build@alpine 281a46c0ec8Sopenharmony_ci - .policy 282a46c0ec8Sopenharmony_ci stage: prep 283a46c0ec8Sopenharmony_ci variables: 284a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 285a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: 'latest' 286a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_PACKAGES: $ALPINE_PACKAGES 287a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $ALPINE_TAG 288a46c0ec8Sopenharmony_ci 289a46c0ec8Sopenharmony_cifreebsd:13.1@container-prep: 290a46c0ec8Sopenharmony_ci extends: 291a46c0ec8Sopenharmony_ci - .fdo.qemu-build@freebsd 292a46c0ec8Sopenharmony_ci - .policy 293a46c0ec8Sopenharmony_ci tags: 294a46c0ec8Sopenharmony_ci - kvm 295a46c0ec8Sopenharmony_ci stage: prep 296a46c0ec8Sopenharmony_ci variables: 297a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 298a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '13.1' 299a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_PACKAGES: $FREEBSD_PACKAGES 300a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $FREEBSD_TAG 301a46c0ec8Sopenharmony_ci 302a46c0ec8Sopenharmony_ci 303a46c0ec8Sopenharmony_ci 304a46c0ec8Sopenharmony_ci################################################################# 305a46c0ec8Sopenharmony_ci# # 306a46c0ec8Sopenharmony_ci# container clean stage # 307a46c0ec8Sopenharmony_ci# run during the clean stage # 308a46c0ec8Sopenharmony_ci# # 309a46c0ec8Sopenharmony_ci################################################################# 310a46c0ec8Sopenharmony_ci 311a46c0ec8Sopenharmony_ci# 312a46c0ec8Sopenharmony_ci# This stage will look for the container images we currently have in 313a46c0ec8Sopenharmony_ci# the registry and will remove any that are not tagged with the provided 314a46c0ec8Sopenharmony_ci# $container_image:$tag 315a46c0ec8Sopenharmony_ci# 316a46c0ec8Sopenharmony_ci.container-clean: 317a46c0ec8Sopenharmony_ci extends: 318a46c0ec8Sopenharmony_ci - .policy 319a46c0ec8Sopenharmony_ci - .fdo.ci-fairy 320a46c0ec8Sopenharmony_ci stage: container_clean 321a46c0ec8Sopenharmony_ci script: 322a46c0ec8Sopenharmony_ci # Go to your Profile, Settings, Access Tokens 323a46c0ec8Sopenharmony_ci # Create a personal token with 'api' scope, copy the value. 324a46c0ec8Sopenharmony_ci # Go to CI/CD, Schedules, schedule a new monthly job (or edit the existing one) 325a46c0ec8Sopenharmony_ci # Define a variable of type File named AUTHFILE. Content is that token 326a46c0ec8Sopenharmony_ci # value. 327a46c0ec8Sopenharmony_ci - ci-fairy -v --authfile $AUTHFILE delete-image 328a46c0ec8Sopenharmony_ci --repository $FDO_DISTRIBUTION_NAME/$FDO_DISTRIBUTION_VERSION 329a46c0ec8Sopenharmony_ci --exclude-tag $FDO_DISTRIBUTION_TAG 330a46c0ec8Sopenharmony_ci allow_failure: true 331a46c0ec8Sopenharmony_ci only: 332a46c0ec8Sopenharmony_ci - schedules 333a46c0ec8Sopenharmony_ci 334a46c0ec8Sopenharmony_cifedora:37@container-clean: 335a46c0ec8Sopenharmony_ci extends: 336a46c0ec8Sopenharmony_ci - .policy 337a46c0ec8Sopenharmony_ci - .container-clean 338a46c0ec8Sopenharmony_ci variables: 339a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 340a46c0ec8Sopenharmony_ci CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG 341a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '37' 342a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $FEDORA_TAG 343a46c0ec8Sopenharmony_ci 344a46c0ec8Sopenharmony_cifedora:38@container-clean: 345a46c0ec8Sopenharmony_ci extends: 346a46c0ec8Sopenharmony_ci - .policy 347a46c0ec8Sopenharmony_ci - .container-clean 348a46c0ec8Sopenharmony_ci variables: 349a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 350a46c0ec8Sopenharmony_ci CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG 351a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '38' 352a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $FEDORA_TAG 353a46c0ec8Sopenharmony_ci 354a46c0ec8Sopenharmony_cidebian:stable@container-clean: 355a46c0ec8Sopenharmony_ci extends: 356a46c0ec8Sopenharmony_ci - .policy 357a46c0ec8Sopenharmony_ci - .container-clean 358a46c0ec8Sopenharmony_ci variables: 359a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 360a46c0ec8Sopenharmony_ci CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/debian/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG 361a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: 'stable' 362a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $DEBIAN_TAG 363a46c0ec8Sopenharmony_ci 364a46c0ec8Sopenharmony_ciubuntu:22.04@container-clean: 365a46c0ec8Sopenharmony_ci extends: 366a46c0ec8Sopenharmony_ci - .policy 367a46c0ec8Sopenharmony_ci - .container-clean 368a46c0ec8Sopenharmony_ci variables: 369a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 370a46c0ec8Sopenharmony_ci CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/ubuntu/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG 371a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '22.04' 372a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $UBUNTU_TAG 373a46c0ec8Sopenharmony_ci 374a46c0ec8Sopenharmony_ciarch:rolling@container-clean: 375a46c0ec8Sopenharmony_ci extends: 376a46c0ec8Sopenharmony_ci - .policy 377a46c0ec8Sopenharmony_ci - .container-clean 378a46c0ec8Sopenharmony_ci variables: 379a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 380a46c0ec8Sopenharmony_ci CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/arch/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG 381a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: 'rolling' 382a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $ARCH_TAG 383a46c0ec8Sopenharmony_ci 384a46c0ec8Sopenharmony_cialpine:latest@container-clean: 385a46c0ec8Sopenharmony_ci extends: 386a46c0ec8Sopenharmony_ci - .policy 387a46c0ec8Sopenharmony_ci - .container-clean 388a46c0ec8Sopenharmony_ci variables: 389a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 390a46c0ec8Sopenharmony_ci CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/alpine/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG 391a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: 'latest' 392a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $ALPINE_TAG 393a46c0ec8Sopenharmony_ci 394a46c0ec8Sopenharmony_cifreebsd:13.1@container-clean: 395a46c0ec8Sopenharmony_ci extends: 396a46c0ec8Sopenharmony_ci - .policy 397a46c0ec8Sopenharmony_ci - .container-clean 398a46c0ec8Sopenharmony_ci variables: 399a46c0ec8Sopenharmony_ci GIT_STRATEGY: none 400a46c0ec8Sopenharmony_ci CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/freebsd/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG 401a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '13.1' 402a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $FREEBSD_TAG 403a46c0ec8Sopenharmony_ci 404a46c0ec8Sopenharmony_ci 405a46c0ec8Sopenharmony_ci################################################################# 406a46c0ec8Sopenharmony_ci# # 407a46c0ec8Sopenharmony_ci# build stage # 408a46c0ec8Sopenharmony_ci# # 409a46c0ec8Sopenharmony_ci################################################################# 410a46c0ec8Sopenharmony_ci 411a46c0ec8Sopenharmony_ci.build@template: 412a46c0ec8Sopenharmony_ci extends: 413a46c0ec8Sopenharmony_ci - .policy 414a46c0ec8Sopenharmony_ci - .default_artifacts 415a46c0ec8Sopenharmony_ci stage: build 416a46c0ec8Sopenharmony_ci script: 417a46c0ec8Sopenharmony_ci - .gitlab-ci/meson-build.sh 418a46c0ec8Sopenharmony_ci 419a46c0ec8Sopenharmony_ci 420a46c0ec8Sopenharmony_ci# Run meson and meson test in the container image through qemu 421a46c0ec8Sopenharmony_ci.build-in-b2c@template: 422a46c0ec8Sopenharmony_ci extends: 423a46c0ec8Sopenharmony_ci - .policy 424a46c0ec8Sopenharmony_ci - .default_artifacts 425a46c0ec8Sopenharmony_ci tags: 426a46c0ec8Sopenharmony_ci - kvm 427a46c0ec8Sopenharmony_ci variables: 428a46c0ec8Sopenharmony_ci MESON_BUILDDIR: build_dir 429a46c0ec8Sopenharmony_ci B2C_KERNEL: https://gitlab.freedesktop.org/api/v4/projects/libevdev%2Fhid-tools/packages/generic/kernel-x86_64/v6.5/bzImage 430a46c0ec8Sopenharmony_ci B2C_IMAGE: $FDO_DISTRIBUTION_IMAGE 431a46c0ec8Sopenharmony_ci B2C_COMMAND: .gitlab-ci/start-in-systemd.sh 432a46c0ec8Sopenharmony_ci script: 433a46c0ec8Sopenharmony_ci # first build in the host container 434a46c0ec8Sopenharmony_ci - .gitlab-ci/meson-build.sh --skip-test 435a46c0ec8Sopenharmony_ci 436a46c0ec8Sopenharmony_ci # pull b2c 437a46c0ec8Sopenharmony_ci - curl -L -o /app/boot2container https://gitlab.freedesktop.org/gfx-ci/boot2container/-/raw/2ff65156ba67fa8a0c309a4fc16c5df1a88a3844/vm2c.py 438a46c0ec8Sopenharmony_ci - chmod +x /app/boot2container 439a46c0ec8Sopenharmony_ci 440a46c0ec8Sopenharmony_ci # runs the test suite only 441a46c0ec8Sopenharmony_ci - /app/boot2container 442a46c0ec8Sopenharmony_ci 443a46c0ec8Sopenharmony_ci# 444a46c0ec8Sopenharmony_ci# Fedora 445a46c0ec8Sopenharmony_ci# 446a46c0ec8Sopenharmony_ci 447a46c0ec8Sopenharmony_ci.check_tainted: &check_tainted | 448a46c0ec8Sopenharmony_ci # make sure the kernel is not tainted 449a46c0ec8Sopenharmony_ci if [[ "$(ssh localhost -p 5555 cat /proc/sys/kernel/tainted)" -gt 0 ]]; 450a46c0ec8Sopenharmony_ci then 451a46c0ec8Sopenharmony_ci echo tainted kernel ; 452a46c0ec8Sopenharmony_ci exit 1 ; 453a46c0ec8Sopenharmony_ci fi 454a46c0ec8Sopenharmony_ci 455a46c0ec8Sopenharmony_ci# Run meson and meson test in the qemu image 456a46c0ec8Sopenharmony_ci.build-in-qemu@template: 457a46c0ec8Sopenharmony_ci extends: 458a46c0ec8Sopenharmony_ci - .policy 459a46c0ec8Sopenharmony_ci tags: 460a46c0ec8Sopenharmony_ci - kvm 461a46c0ec8Sopenharmony_ci variables: 462a46c0ec8Sopenharmony_ci MESON_BUILDDIR: build_dir 463a46c0ec8Sopenharmony_ci script: 464a46c0ec8Sopenharmony_ci # start our vm, no args required 465a46c0ec8Sopenharmony_ci - /app/vmctl start || (echo "Error - Failed to start the VM." && exit 1) 466a46c0ec8Sopenharmony_ci 467a46c0ec8Sopenharmony_ci - *check_tainted 468a46c0ec8Sopenharmony_ci 469a46c0ec8Sopenharmony_ci - "scp -r $PWD vm:" 470a46c0ec8Sopenharmony_ci - echo "CI_JOB_ID=\"$CI_JOB_ID\"" > sshenv 471a46c0ec8Sopenharmony_ci - echo "CI_JOB_NAME=\"$CI_JOB_NAME\"" >> sshenv 472a46c0ec8Sopenharmony_ci - echo "MESON_ARGS=\"$MESON_ARGS\"" >> sshenv 473a46c0ec8Sopenharmony_ci - echo "MESON_BUILDDIR=\"$MESON_BUILDDIR\"" >> sshenv 474a46c0ec8Sopenharmony_ci - echo "MESON_TEST_ARGS=\"$MESON_TEST_ARGS\"" >> sshenv 475a46c0ec8Sopenharmony_ci - echo "NINJA_ARGS=\"$NINJA_ARGS\"" >> sshenv 476a46c0ec8Sopenharmony_ci - "scp sshenv vm:~/$CI_PROJECT_NAME/.meson_environment" 477a46c0ec8Sopenharmony_ci - /app/vmctl exec "cd $CI_PROJECT_NAME ; .gitlab-ci/meson-build.sh" && touch .success || true 478a46c0ec8Sopenharmony_ci # no matter the results of the tests, we want to fetch the logs 479a46c0ec8Sopenharmony_ci - scp -r vm:$CI_PROJECT_NAME/$MESON_BUILDDIR . 480a46c0ec8Sopenharmony_ci 481a46c0ec8Sopenharmony_ci - *check_tainted 482a46c0ec8Sopenharmony_ci 483a46c0ec8Sopenharmony_ci - /app/vmctl stop 484a46c0ec8Sopenharmony_ci 485a46c0ec8Sopenharmony_ci - if [[ ! -e .success ]] ; 486a46c0ec8Sopenharmony_ci then 487a46c0ec8Sopenharmony_ci exit 1 ; 488a46c0ec8Sopenharmony_ci fi 489a46c0ec8Sopenharmony_ci artifacts: 490a46c0ec8Sopenharmony_ci name: "qemu-meson-logs-$CI_JOB_NAME" 491a46c0ec8Sopenharmony_ci when: always 492a46c0ec8Sopenharmony_ci expire_in: 1 week 493a46c0ec8Sopenharmony_ci paths: 494a46c0ec8Sopenharmony_ci - $MESON_BUILDDIR/meson-logs 495a46c0ec8Sopenharmony_ci - console.out 496a46c0ec8Sopenharmony_ci reports: 497a46c0ec8Sopenharmony_ci junit: $MESON_BUILDDIR/*junit*.xml 498a46c0ec8Sopenharmony_ci 499a46c0ec8Sopenharmony_ci 500a46c0ec8Sopenharmony_ci# Run in a test suite. Special variables: 501a46c0ec8Sopenharmony_ci# - SUITES: the meson test suites to run, or 502a46c0ec8Sopenharmony_ci# - SUITE_NAMES: all elements will be expanded to libinput-test-suite-$value 503a46c0ec8Sopenharmony_ci# Set one or the other, not both. 504a46c0ec8Sopenharmony_ci.test-suite-vm: 505a46c0ec8Sopenharmony_ci extends: 506a46c0ec8Sopenharmony_ci - .build-in-b2c@template 507a46c0ec8Sopenharmony_ci stage: test-suite 508a46c0ec8Sopenharmony_ci variables: 509a46c0ec8Sopenharmony_ci # remove the global --no-suite=hardware 510a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '' 511a46c0ec8Sopenharmony_ci before_script: 512a46c0ec8Sopenharmony_ci - if ! [[ -z $SUITE_NAMES ]]; then SUITES=$(echo $SUITE_NAMES | sed 's/\([^ ]*\)/libinput-test-suite-\1/g'); fi 513a46c0ec8Sopenharmony_ci - echo "Testing $SUITES" 514a46c0ec8Sopenharmony_ci - export MESON_TEST_ARGS="$MESON_TEST_ARGS $SUITES" 515a46c0ec8Sopenharmony_ci - export LITEST_JOBS="2" 516a46c0ec8Sopenharmony_ci 517a46c0ec8Sopenharmony_ci 518a46c0ec8Sopenharmony_ci.fedora:38@test-suite-vm: 519a46c0ec8Sopenharmony_ci extends: 520a46c0ec8Sopenharmony_ci - .fdo.distribution-image@fedora 521a46c0ec8Sopenharmony_ci - .test-suite-vm 522a46c0ec8Sopenharmony_ci variables: 523a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: 38 524a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $FEDORA_TAG 525a46c0ec8Sopenharmony_ci needs: 526a46c0ec8Sopenharmony_ci - "fedora:38@container-prep" 527a46c0ec8Sopenharmony_ci 528a46c0ec8Sopenharmony_ci 529a46c0ec8Sopenharmony_civm-touchpad: 530a46c0ec8Sopenharmony_ci extends: 531a46c0ec8Sopenharmony_ci - .fedora:38@test-suite-vm 532a46c0ec8Sopenharmony_ci variables: 533a46c0ec8Sopenharmony_ci SUITE_NAMES: 'touchpad' 534a46c0ec8Sopenharmony_ci 535a46c0ec8Sopenharmony_civm-touchpad-no-libwacom: 536a46c0ec8Sopenharmony_ci extends: 537a46c0ec8Sopenharmony_ci - vm-touchpad 538a46c0ec8Sopenharmony_ci stage: test-suite-no-libwacom 539a46c0ec8Sopenharmony_ci variables: 540a46c0ec8Sopenharmony_ci MESON_ARGS: '-Dlibwacom=false' 541a46c0ec8Sopenharmony_ci 542a46c0ec8Sopenharmony_civm-tap: 543a46c0ec8Sopenharmony_ci extends: 544a46c0ec8Sopenharmony_ci - .fedora:38@test-suite-vm 545a46c0ec8Sopenharmony_ci variables: 546a46c0ec8Sopenharmony_ci SUITE_NAMES: 'touchpad-tap' 547a46c0ec8Sopenharmony_ci 548a46c0ec8Sopenharmony_civm-tap-no-libwacom: 549a46c0ec8Sopenharmony_ci extends: 550a46c0ec8Sopenharmony_ci - vm-tap 551a46c0ec8Sopenharmony_ci stage: test-suite-no-libwacom 552a46c0ec8Sopenharmony_ci variables: 553a46c0ec8Sopenharmony_ci MESON_ARGS: '-Dlibwacom=false' 554a46c0ec8Sopenharmony_ci 555a46c0ec8Sopenharmony_civm-touchpad-buttons: 556a46c0ec8Sopenharmony_ci extends: 557a46c0ec8Sopenharmony_ci - .fedora:38@test-suite-vm 558a46c0ec8Sopenharmony_ci variables: 559a46c0ec8Sopenharmony_ci SUITE_NAMES: 'touchpad-buttons' 560a46c0ec8Sopenharmony_ci 561a46c0ec8Sopenharmony_civm-touchpad-buttons-no-libwacom: 562a46c0ec8Sopenharmony_ci extends: 563a46c0ec8Sopenharmony_ci - vm-touchpad-buttons 564a46c0ec8Sopenharmony_ci stage: test-suite-no-libwacom 565a46c0ec8Sopenharmony_ci variables: 566a46c0ec8Sopenharmony_ci MESON_ARGS: '-Dlibwacom=false' 567a46c0ec8Sopenharmony_ci 568a46c0ec8Sopenharmony_civm-tablet: 569a46c0ec8Sopenharmony_ci extends: 570a46c0ec8Sopenharmony_ci - .fedora:38@test-suite-vm 571a46c0ec8Sopenharmony_ci variables: 572a46c0ec8Sopenharmony_ci SUITE_NAMES: 'tablet' 573a46c0ec8Sopenharmony_ci 574a46c0ec8Sopenharmony_civm-tablet-no-libwacom: 575a46c0ec8Sopenharmony_ci extends: 576a46c0ec8Sopenharmony_ci - vm-tablet 577a46c0ec8Sopenharmony_ci stage: test-suite-no-libwacom 578a46c0ec8Sopenharmony_ci variables: 579a46c0ec8Sopenharmony_ci MESON_ARGS: '-Dlibwacom=false' 580a46c0ec8Sopenharmony_ci 581a46c0ec8Sopenharmony_civm-gestures-device: 582a46c0ec8Sopenharmony_ci extends: 583a46c0ec8Sopenharmony_ci - .fedora:38@test-suite-vm 584a46c0ec8Sopenharmony_ci variables: 585a46c0ec8Sopenharmony_ci SUITE_NAMES: 'gestures device' 586a46c0ec8Sopenharmony_ci 587a46c0ec8Sopenharmony_civm-gestures-device-no-libwacom: 588a46c0ec8Sopenharmony_ci extends: 589a46c0ec8Sopenharmony_ci - vm-gestures-device 590a46c0ec8Sopenharmony_ci stage: test-suite-no-libwacom 591a46c0ec8Sopenharmony_ci variables: 592a46c0ec8Sopenharmony_ci MESON_ARGS: '-Dlibwacom=false' 593a46c0ec8Sopenharmony_ci 594a46c0ec8Sopenharmony_civm-backends: 595a46c0ec8Sopenharmony_ci extends: 596a46c0ec8Sopenharmony_ci - .fedora:38@test-suite-vm 597a46c0ec8Sopenharmony_ci variables: 598a46c0ec8Sopenharmony_ci SUITE_NAMES: 'path udev' 599a46c0ec8Sopenharmony_ci 600a46c0ec8Sopenharmony_civm-backends-no-libwacom: 601a46c0ec8Sopenharmony_ci extends: 602a46c0ec8Sopenharmony_ci - vm-backends 603a46c0ec8Sopenharmony_ci stage: test-suite-no-libwacom 604a46c0ec8Sopenharmony_ci variables: 605a46c0ec8Sopenharmony_ci MESON_ARGS: '-Dlibwacom=false' 606a46c0ec8Sopenharmony_ci 607a46c0ec8Sopenharmony_civm-misc: 608a46c0ec8Sopenharmony_ci extends: 609a46c0ec8Sopenharmony_ci - .fedora:38@test-suite-vm 610a46c0ec8Sopenharmony_ci variables: 611a46c0ec8Sopenharmony_ci SUITE_NAMES: 'log misc quirks' 612a46c0ec8Sopenharmony_ci 613a46c0ec8Sopenharmony_civm-misc-no-libwacom: 614a46c0ec8Sopenharmony_ci extends: 615a46c0ec8Sopenharmony_ci - vm-misc 616a46c0ec8Sopenharmony_ci stage: test-suite-no-libwacom 617a46c0ec8Sopenharmony_ci variables: 618a46c0ec8Sopenharmony_ci MESON_ARGS: '-Dlibwacom=false' 619a46c0ec8Sopenharmony_ci 620a46c0ec8Sopenharmony_civm-other devices: 621a46c0ec8Sopenharmony_ci extends: 622a46c0ec8Sopenharmony_ci - .fedora:38@test-suite-vm 623a46c0ec8Sopenharmony_ci variables: 624a46c0ec8Sopenharmony_ci SUITE_NAMES: 'keyboard pad switch trackball trackpoint totem touch' 625a46c0ec8Sopenharmony_ci 626a46c0ec8Sopenharmony_civm-other devices-no-libwacom: 627a46c0ec8Sopenharmony_ci extends: 628a46c0ec8Sopenharmony_ci - vm-other devices 629a46c0ec8Sopenharmony_ci stage: test-suite-no-libwacom 630a46c0ec8Sopenharmony_ci variables: 631a46c0ec8Sopenharmony_ci MESON_ARGS: '-Dlibwacom=false' 632a46c0ec8Sopenharmony_ci 633a46c0ec8Sopenharmony_civm-pointer: 634a46c0ec8Sopenharmony_ci extends: 635a46c0ec8Sopenharmony_ci - .fedora:38@test-suite-vm 636a46c0ec8Sopenharmony_ci variables: 637a46c0ec8Sopenharmony_ci SUITE_NAMES: 'pointer' 638a46c0ec8Sopenharmony_ci 639a46c0ec8Sopenharmony_civm-pointer-no-libwacom: 640a46c0ec8Sopenharmony_ci extends: 641a46c0ec8Sopenharmony_ci - vm-pointer 642a46c0ec8Sopenharmony_ci stage: test-suite-no-libwacom 643a46c0ec8Sopenharmony_ci variables: 644a46c0ec8Sopenharmony_ci MESON_ARGS: '-Dlibwacom=false' 645a46c0ec8Sopenharmony_ci 646a46c0ec8Sopenharmony_ci 647a46c0ec8Sopenharmony_civm-valgrind-touchpad: 648a46c0ec8Sopenharmony_ci stage: valgrind 649a46c0ec8Sopenharmony_ci extends: 650a46c0ec8Sopenharmony_ci - vm-touchpad 651a46c0ec8Sopenharmony_ci variables: 652a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '--setup=valgrind' 653a46c0ec8Sopenharmony_ci LITEST_JOBS: 4 654a46c0ec8Sopenharmony_ci 655a46c0ec8Sopenharmony_civm-valgrind-tap: 656a46c0ec8Sopenharmony_ci stage: valgrind 657a46c0ec8Sopenharmony_ci extends: 658a46c0ec8Sopenharmony_ci - vm-tap 659a46c0ec8Sopenharmony_ci variables: 660a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '--setup=valgrind' 661a46c0ec8Sopenharmony_ci LITEST_JOBS: 4 662a46c0ec8Sopenharmony_ci 663a46c0ec8Sopenharmony_civm-valgrind-touchpad-buttons: 664a46c0ec8Sopenharmony_ci stage: valgrind 665a46c0ec8Sopenharmony_ci extends: 666a46c0ec8Sopenharmony_ci - vm-touchpad-buttons 667a46c0ec8Sopenharmony_ci variables: 668a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '--setup=valgrind' 669a46c0ec8Sopenharmony_ci LITEST_JOBS: 4 670a46c0ec8Sopenharmony_ci 671a46c0ec8Sopenharmony_civm-valgrind-tablet: 672a46c0ec8Sopenharmony_ci stage: valgrind 673a46c0ec8Sopenharmony_ci extends: 674a46c0ec8Sopenharmony_ci - vm-tablet 675a46c0ec8Sopenharmony_ci variables: 676a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '--setup=valgrind' 677a46c0ec8Sopenharmony_ci LITEST_JOBS: 4 678a46c0ec8Sopenharmony_ci 679a46c0ec8Sopenharmony_civm-valgrind-gestures-device: 680a46c0ec8Sopenharmony_ci stage: valgrind 681a46c0ec8Sopenharmony_ci extends: 682a46c0ec8Sopenharmony_ci - vm-gestures-device 683a46c0ec8Sopenharmony_ci variables: 684a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '--setup=valgrind' 685a46c0ec8Sopenharmony_ci LITEST_JOBS: 4 686a46c0ec8Sopenharmony_ci 687a46c0ec8Sopenharmony_civm-valgrind-backends: 688a46c0ec8Sopenharmony_ci stage: valgrind 689a46c0ec8Sopenharmony_ci extends: 690a46c0ec8Sopenharmony_ci - vm-backends 691a46c0ec8Sopenharmony_ci variables: 692a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '--setup=valgrind' 693a46c0ec8Sopenharmony_ci LITEST_JOBS: 4 694a46c0ec8Sopenharmony_ci 695a46c0ec8Sopenharmony_civm-valgrind-misc: 696a46c0ec8Sopenharmony_ci stage: valgrind 697a46c0ec8Sopenharmony_ci extends: 698a46c0ec8Sopenharmony_ci - vm-misc 699a46c0ec8Sopenharmony_ci variables: 700a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '--setup=valgrind' 701a46c0ec8Sopenharmony_ci LITEST_JOBS: 4 702a46c0ec8Sopenharmony_ci 703a46c0ec8Sopenharmony_civm-valgrind-other devices: 704a46c0ec8Sopenharmony_ci stage: valgrind 705a46c0ec8Sopenharmony_ci extends: 706a46c0ec8Sopenharmony_ci - vm-other devices 707a46c0ec8Sopenharmony_ci variables: 708a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '--setup=valgrind' 709a46c0ec8Sopenharmony_ci LITEST_JOBS: 4 710a46c0ec8Sopenharmony_ci 711a46c0ec8Sopenharmony_civm-valgrind-pointer: 712a46c0ec8Sopenharmony_ci stage: valgrind 713a46c0ec8Sopenharmony_ci extends: 714a46c0ec8Sopenharmony_ci - vm-pointer 715a46c0ec8Sopenharmony_ci variables: 716a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '--setup=valgrind' 717a46c0ec8Sopenharmony_ci LITEST_JOBS: 4 718a46c0ec8Sopenharmony_ci 719a46c0ec8Sopenharmony_ci 720a46c0ec8Sopenharmony_ci.fedora-build@template: 721a46c0ec8Sopenharmony_ci extends: 722a46c0ec8Sopenharmony_ci - .fdo.distribution-image@fedora 723a46c0ec8Sopenharmony_ci - .build@template 724a46c0ec8Sopenharmony_ci variables: 725a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '38' 726a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $FEDORA_TAG 727a46c0ec8Sopenharmony_ci needs: 728a46c0ec8Sopenharmony_ci - "fedora:38@container-prep" 729a46c0ec8Sopenharmony_ci 730a46c0ec8Sopenharmony_cidefault-build-release@fedora:38: 731a46c0ec8Sopenharmony_ci stage: distro 732a46c0ec8Sopenharmony_ci extends: 733a46c0ec8Sopenharmony_ci - .fedora-build@template 734a46c0ec8Sopenharmony_ci variables: 735a46c0ec8Sopenharmony_ci MESON_ARGS: "-Dbuildtype=release" 736a46c0ec8Sopenharmony_ci CFLAGS: "-Werror" 737a46c0ec8Sopenharmony_ci 738a46c0ec8Sopenharmony_ciscan-build@fedora:38: 739a46c0ec8Sopenharmony_ci extends: 740a46c0ec8Sopenharmony_ci - .fedora-build@template 741a46c0ec8Sopenharmony_ci variables: 742a46c0ec8Sopenharmony_ci NINJA_ARGS: '' 743a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '' 744a46c0ec8Sopenharmony_ci script: 745a46c0ec8Sopenharmony_ci - .gitlab-ci/meson-build.sh 746a46c0ec8Sopenharmony_ci - export SCANBUILD="$PWD/.gitlab-ci/scanbuild-wrapper.sh" 747a46c0ec8Sopenharmony_ci - ninja -C "$MESON_BUILDDIR" scan-build 748a46c0ec8Sopenharmony_ci after_script: 749a46c0ec8Sopenharmony_ci - .gitlab-ci/scanbuild-plist-to-junit.py "$MESON_BUILDDIR"/meson-logs/scanbuild/ > "$MESON_BUILDDIR"/junit-scan-build.xml 750a46c0ec8Sopenharmony_ci 751a46c0ec8Sopenharmony_ci# Below jobs are build option combinations. We only 752a46c0ec8Sopenharmony_ci# run them on one image, they shouldn't fail on one distro 753a46c0ec8Sopenharmony_ci# when they succeed on another. 754a46c0ec8Sopenharmony_ci 755a46c0ec8Sopenharmony_cibuild-no-libwacom@fedora:38: 756a46c0ec8Sopenharmony_ci extends: 757a46c0ec8Sopenharmony_ci - .fedora-build@template 758a46c0ec8Sopenharmony_ci variables: 759a46c0ec8Sopenharmony_ci MESON_ARGS: "-Dlibwacom=false" 760a46c0ec8Sopenharmony_ci 761a46c0ec8Sopenharmony_cibuild-no-libwacom-nodeps@fedora:38: 762a46c0ec8Sopenharmony_ci extends: 763a46c0ec8Sopenharmony_ci - .fedora-build@template 764a46c0ec8Sopenharmony_ci variables: 765a46c0ec8Sopenharmony_ci MESON_ARGS: "-Dlibwacom=false" 766a46c0ec8Sopenharmony_ci before_script: 767a46c0ec8Sopenharmony_ci - dnf remove -y libwacom libwacom-devel 768a46c0ec8Sopenharmony_ci 769a46c0ec8Sopenharmony_cibuild-docs@fedora:38: 770a46c0ec8Sopenharmony_ci extends: 771a46c0ec8Sopenharmony_ci - .fedora-build@template 772a46c0ec8Sopenharmony_ci variables: 773a46c0ec8Sopenharmony_ci MESON_ARGS: "-Ddocumentation=true" 774a46c0ec8Sopenharmony_ci 775a46c0ec8Sopenharmony_cibuild-no-docs-nodeps@fedora:38: 776a46c0ec8Sopenharmony_ci extends: 777a46c0ec8Sopenharmony_ci - .fedora-build@template 778a46c0ec8Sopenharmony_ci variables: 779a46c0ec8Sopenharmony_ci MESON_ARGS: "-Ddocumentation=false" 780a46c0ec8Sopenharmony_ci before_script: 781a46c0ec8Sopenharmony_ci - dnf remove -y doxygen graphviz 782a46c0ec8Sopenharmony_ci 783a46c0ec8Sopenharmony_cibuild-no-debuggui@fedora:38: 784a46c0ec8Sopenharmony_ci extends: 785a46c0ec8Sopenharmony_ci - .fedora-build@template 786a46c0ec8Sopenharmony_ci variables: 787a46c0ec8Sopenharmony_ci MESON_ARGS: "-Ddebug-gui=false" 788a46c0ec8Sopenharmony_ci 789a46c0ec8Sopenharmony_cibuild-no-debuggui-nodeps@fedora:38: 790a46c0ec8Sopenharmony_ci extends: 791a46c0ec8Sopenharmony_ci - .fedora-build@template 792a46c0ec8Sopenharmony_ci variables: 793a46c0ec8Sopenharmony_ci MESON_ARGS: "-Ddebug-gui=false" 794a46c0ec8Sopenharmony_ci before_script: 795a46c0ec8Sopenharmony_ci - dnf remove -y gtk3-devel gtk4-devel 796a46c0ec8Sopenharmony_ci 797a46c0ec8Sopenharmony_cibuild-no-tests@fedora:38: 798a46c0ec8Sopenharmony_ci extends: 799a46c0ec8Sopenharmony_ci - .fedora-build@template 800a46c0ec8Sopenharmony_ci variables: 801a46c0ec8Sopenharmony_ci MESON_ARGS: "-Dtests=false" 802a46c0ec8Sopenharmony_ci 803a46c0ec8Sopenharmony_cibuild-no-tests-nodeps@fedora:38: 804a46c0ec8Sopenharmony_ci extends: 805a46c0ec8Sopenharmony_ci - .fedora-build@template 806a46c0ec8Sopenharmony_ci variables: 807a46c0ec8Sopenharmony_ci MESON_ARGS: "-Dtests=false" 808a46c0ec8Sopenharmony_ci before_script: 809a46c0ec8Sopenharmony_ci - dnf remove -y check-devel 810a46c0ec8Sopenharmony_ci 811a46c0ec8Sopenharmony_civalgrind@fedora:38: 812a46c0ec8Sopenharmony_ci extends: 813a46c0ec8Sopenharmony_ci - .fedora-build@template 814a46c0ec8Sopenharmony_ci variables: 815a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '--suite=valgrind --no-suite=hardware --setup=valgrind' 816a46c0ec8Sopenharmony_ci 817a46c0ec8Sopenharmony_ci# Python checks, only run on Fedora 818a46c0ec8Sopenharmony_ci 819a46c0ec8Sopenharmony_ciusr-bin-env-python@fedora:38: 820a46c0ec8Sopenharmony_ci extends: 821a46c0ec8Sopenharmony_ci - .fedora-build@template 822a46c0ec8Sopenharmony_ci script: 823a46c0ec8Sopenharmony_ci - | 824a46c0ec8Sopenharmony_ci if git grep -l '^#!/usr/bin/python'; then 825a46c0ec8Sopenharmony_ci echo "Use '/usr/bin/env python3' in the above files"; 826a46c0ec8Sopenharmony_ci /bin/false 827a46c0ec8Sopenharmony_ci fi 828a46c0ec8Sopenharmony_ci 829a46c0ec8Sopenharmony_cipython-format@fedora:38: 830a46c0ec8Sopenharmony_ci extends: 831a46c0ec8Sopenharmony_ci - .fedora-build@template 832a46c0ec8Sopenharmony_ci script: 833a46c0ec8Sopenharmony_ci - black $(git grep -l '^#!/usr/bin/env python3') 834a46c0ec8Sopenharmony_ci - git diff --exit-code || (echo "Please run Black against all Python files" && false) 835a46c0ec8Sopenharmony_ci 836a46c0ec8Sopenharmony_ci# A job to check we're actually running all test suites in the CI 837a46c0ec8Sopenharmony_cicheck-test-suites: 838a46c0ec8Sopenharmony_ci extends: 839a46c0ec8Sopenharmony_ci - .fedora-build@template 840a46c0ec8Sopenharmony_ci script: 841a46c0ec8Sopenharmony_ci - meson setup builddir 842a46c0ec8Sopenharmony_ci - meson introspect builddir --test | jq -r '.[].name' | grep 'libinput-test-suite' | sort > meson-testsuites 843a46c0ec8Sopenharmony_ci - | 844a46c0ec8Sopenharmony_ci cat <<EOF > ci-testsuites ; 845a46c0ec8Sopenharmony_ci libinput-test-suite-touchpad 846a46c0ec8Sopenharmony_ci libinput-test-suite-touchpad-tap 847a46c0ec8Sopenharmony_ci libinput-test-suite-touchpad-buttons 848a46c0ec8Sopenharmony_ci libinput-test-suite-tablet 849a46c0ec8Sopenharmony_ci libinput-test-suite-gestures 850a46c0ec8Sopenharmony_ci libinput-test-suite-device 851a46c0ec8Sopenharmony_ci libinput-test-suite-path 852a46c0ec8Sopenharmony_ci libinput-test-suite-udev 853a46c0ec8Sopenharmony_ci libinput-test-suite-log 854a46c0ec8Sopenharmony_ci libinput-test-suite-misc 855a46c0ec8Sopenharmony_ci libinput-test-suite-quirks 856a46c0ec8Sopenharmony_ci libinput-test-suite-keyboard 857a46c0ec8Sopenharmony_ci libinput-test-suite-pad 858a46c0ec8Sopenharmony_ci libinput-test-suite-switch 859a46c0ec8Sopenharmony_ci libinput-test-suite-trackball 860a46c0ec8Sopenharmony_ci libinput-test-suite-trackpoint 861a46c0ec8Sopenharmony_ci libinput-test-suite-totem 862a46c0ec8Sopenharmony_ci libinput-test-suite-touch 863a46c0ec8Sopenharmony_ci libinput-test-suite-pointer 864a46c0ec8Sopenharmony_ci EOF 865a46c0ec8Sopenharmony_ci - sort -o ci-testsuites ci-testsuites 866a46c0ec8Sopenharmony_ci - diff -u8 -w ci-testsuites meson-testsuites || (echo "Some test suites are not run in the CI" && false) 867a46c0ec8Sopenharmony_ci only: 868a46c0ec8Sopenharmony_ci changes: 869a46c0ec8Sopenharmony_ci - "meson.build" 870a46c0ec8Sopenharmony_ci - ".gitlab-ci.yml" 871a46c0ec8Sopenharmony_ci 872a46c0ec8Sopenharmony_ci# 873a46c0ec8Sopenharmony_ci# coverity run 874a46c0ec8Sopenharmony_ci# 875a46c0ec8Sopenharmony_ci# This requires the COVERITY_SCAN_TOKEN. Log into scan.coverity.com and get 876a46c0ec8Sopenharmony_ci# the token from the respective project settings page. 877a46c0ec8Sopenharmony_ci# Schedule a pipeline and set a variable COVERITY_SCAN_TOKEN with the token value. 878a46c0ec8Sopenharmony_ci# https://gitlab.freedesktop.org/$CI_PROJECT_PATH/-/pipeline_schedules 879a46c0ec8Sopenharmony_ci# Email from coverity will be sent to the GITLAB_USER_EMAIL that scheduled the 880a46c0ec8Sopenharmony_ci# job. 881a46c0ec8Sopenharmony_ci# 882a46c0ec8Sopenharmony_ci# Coverity ratelimits submissions and the coverity tools download is about 883a46c0ec8Sopenharmony_ci# 700M, do not run this too often. 884a46c0ec8Sopenharmony_ci# 885a46c0ec8Sopenharmony_cicoverity: 886a46c0ec8Sopenharmony_ci extends: 887a46c0ec8Sopenharmony_ci - .fdo.distribution-image@debian 888a46c0ec8Sopenharmony_ci - .policy 889a46c0ec8Sopenharmony_ci stage: build 890a46c0ec8Sopenharmony_ci variables: 891a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: 'stable' 892a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $DEBIAN_TAG 893a46c0ec8Sopenharmony_ci # so git-describe works, or should work 894a46c0ec8Sopenharmony_ci GIT_DEPTH: 200 895a46c0ec8Sopenharmony_ci only: 896a46c0ec8Sopenharmony_ci variables: 897a46c0ec8Sopenharmony_ci - $COVERITY_SCAN_TOKEN 898a46c0ec8Sopenharmony_ci script: 899a46c0ec8Sopenharmony_ci - curl https://scan.coverity.com/download/linux64 900a46c0ec8Sopenharmony_ci -o /tmp/cov-analysis-linux64.tgz 901a46c0ec8Sopenharmony_ci --form project=$CI_PROJECT_NAME 902a46c0ec8Sopenharmony_ci --form token=$COVERITY_SCAN_TOKEN 903a46c0ec8Sopenharmony_ci - tar xfz /tmp/cov-analysis-linux64.tgz 904a46c0ec8Sopenharmony_ci # coverity has special build options in meson, make sure we enable those 905a46c0ec8Sopenharmony_ci - meson coverity-build -Ddocumentation=false -Dcoverity=true 906a46c0ec8Sopenharmony_ci - cov-analysis-linux64-*/bin/cov-build --dir cov-int ninja -C coverity-build 907a46c0ec8Sopenharmony_ci - tar cfz cov-int.tar.gz cov-int 908a46c0ec8Sopenharmony_ci - curl https://scan.coverity.com/builds?project=$CI_PROJECT_NAME 909a46c0ec8Sopenharmony_ci --form token=$COVERITY_SCAN_TOKEN --form email=$GITLAB_USER_EMAIL 910a46c0ec8Sopenharmony_ci --form file=@cov-int.tar.gz --form version="$(git describe --tags)" 911a46c0ec8Sopenharmony_ci --form description="$(git describe --tags) / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID" 912a46c0ec8Sopenharmony_ci artifacts: 913a46c0ec8Sopenharmony_ci name: "coverity-submit-data" 914a46c0ec8Sopenharmony_ci when: always 915a46c0ec8Sopenharmony_ci expire_in: 1 week 916a46c0ec8Sopenharmony_ci paths: 917a46c0ec8Sopenharmony_ci - cov-int.tar.gz 918a46c0ec8Sopenharmony_ci needs: 919a46c0ec8Sopenharmony_ci - "debian:stable@container-prep" 920a46c0ec8Sopenharmony_ci 921a46c0ec8Sopenharmony_ci################################################################# 922a46c0ec8Sopenharmony_ci# # 923a46c0ec8Sopenharmony_ci# distro stage # 924a46c0ec8Sopenharmony_ci# # 925a46c0ec8Sopenharmony_ci################################################################# 926a46c0ec8Sopenharmony_ci 927a46c0ec8Sopenharmony_cifedora:37@default-build: 928a46c0ec8Sopenharmony_ci stage: distro 929a46c0ec8Sopenharmony_ci extends: 930a46c0ec8Sopenharmony_ci - .build@template 931a46c0ec8Sopenharmony_ci - .fdo.distribution-image@fedora 932a46c0ec8Sopenharmony_ci variables: 933a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '37' 934a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $FEDORA_TAG 935a46c0ec8Sopenharmony_ci needs: 936a46c0ec8Sopenharmony_ci - "fedora:37@container-prep" 937a46c0ec8Sopenharmony_ci 938a46c0ec8Sopenharmony_ci 939a46c0ec8Sopenharmony_cifedora:38@default-build: 940a46c0ec8Sopenharmony_ci stage: distro 941a46c0ec8Sopenharmony_ci extends: 942a46c0ec8Sopenharmony_ci - .build@template 943a46c0ec8Sopenharmony_ci - .fdo.distribution-image@fedora 944a46c0ec8Sopenharmony_ci variables: 945a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '38' 946a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $FEDORA_TAG 947a46c0ec8Sopenharmony_ci needs: 948a46c0ec8Sopenharmony_ci - "fedora:38@container-prep" 949a46c0ec8Sopenharmony_ci 950a46c0ec8Sopenharmony_ci 951a46c0ec8Sopenharmony_cidebian:stable@default-build: 952a46c0ec8Sopenharmony_ci stage: distro 953a46c0ec8Sopenharmony_ci extends: 954a46c0ec8Sopenharmony_ci - .build@template 955a46c0ec8Sopenharmony_ci - .fdo.distribution-image@debian 956a46c0ec8Sopenharmony_ci variables: 957a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: 'stable' 958a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $DEBIAN_TAG 959a46c0ec8Sopenharmony_ci needs: 960a46c0ec8Sopenharmony_ci - "debian:stable@container-prep" 961a46c0ec8Sopenharmony_ci 962a46c0ec8Sopenharmony_ci 963a46c0ec8Sopenharmony_ciubuntu:22.04@default-build: 964a46c0ec8Sopenharmony_ci stage: distro 965a46c0ec8Sopenharmony_ci extends: 966a46c0ec8Sopenharmony_ci - .build@template 967a46c0ec8Sopenharmony_ci - .fdo.distribution-image@ubuntu 968a46c0ec8Sopenharmony_ci variables: 969a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '22.04' 970a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $UBUNTU_TAG 971a46c0ec8Sopenharmony_ci needs: 972a46c0ec8Sopenharmony_ci - "ubuntu:22.04@container-prep" 973a46c0ec8Sopenharmony_ci 974a46c0ec8Sopenharmony_ci 975a46c0ec8Sopenharmony_ciarch:rolling@default-build: 976a46c0ec8Sopenharmony_ci stage: distro 977a46c0ec8Sopenharmony_ci extends: 978a46c0ec8Sopenharmony_ci - .build@template 979a46c0ec8Sopenharmony_ci - .fdo.distribution-image@arch 980a46c0ec8Sopenharmony_ci variables: 981a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: 'rolling' 982a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $ARCH_TAG 983a46c0ec8Sopenharmony_ci needs: 984a46c0ec8Sopenharmony_ci - "arch:rolling@container-prep" 985a46c0ec8Sopenharmony_ci 986a46c0ec8Sopenharmony_ci 987a46c0ec8Sopenharmony_cialpine:latest@default-build: 988a46c0ec8Sopenharmony_ci stage: distro 989a46c0ec8Sopenharmony_ci extends: 990a46c0ec8Sopenharmony_ci - .build@template 991a46c0ec8Sopenharmony_ci - .fdo.distribution-image@alpine 992a46c0ec8Sopenharmony_ci variables: 993a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: 'latest' 994a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $ALPINE_TAG 995a46c0ec8Sopenharmony_ci MESON_ARGS: '-Ddocumentation=false' # alpine does not have python-recommonmark 996a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '' # litest-selftest fails on musl 997a46c0ec8Sopenharmony_ci needs: 998a46c0ec8Sopenharmony_ci - "alpine:latest@container-prep" 999a46c0ec8Sopenharmony_ci 1000a46c0ec8Sopenharmony_ci 1001a46c0ec8Sopenharmony_cifreebsd:13.1@default-build: 1002a46c0ec8Sopenharmony_ci stage: distro 1003a46c0ec8Sopenharmony_ci extends: 1004a46c0ec8Sopenharmony_ci - .build-in-qemu@template 1005a46c0ec8Sopenharmony_ci - .fdo.distribution-image@freebsd 1006a46c0ec8Sopenharmony_ci variables: 1007a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '13.1' 1008a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $FREEBSD_TAG 1009a46c0ec8Sopenharmony_ci MESON_ARGS: '-Dtests=false -Ddocumentation=false' # doxygen drags down too many deps 1010a46c0ec8Sopenharmony_ci MESON_TEST_ARGS: '' # test suite doesn't work on BSD yet 1011a46c0ec8Sopenharmony_ci needs: 1012a46c0ec8Sopenharmony_ci - "freebsd:13.1@container-prep" 1013a46c0ec8Sopenharmony_ci 1014a46c0ec8Sopenharmony_ci 1015a46c0ec8Sopenharmony_ci################################################################# 1016a46c0ec8Sopenharmony_ci# # 1017a46c0ec8Sopenharmony_ci# deploy stage # 1018a46c0ec8Sopenharmony_ci# # 1019a46c0ec8Sopenharmony_ci################################################################# 1020a46c0ec8Sopenharmony_ci 1021a46c0ec8Sopenharmony_ci# 1022a46c0ec8Sopenharmony_ci# Verify that the merge request has the allow-collaboration checkbox ticked 1023a46c0ec8Sopenharmony_ci# 1024a46c0ec8Sopenharmony_ci 1025a46c0ec8Sopenharmony_cicheck-merge-request: 1026a46c0ec8Sopenharmony_ci extends: 1027a46c0ec8Sopenharmony_ci - .fdo.ci-fairy 1028a46c0ec8Sopenharmony_ci - .policy 1029a46c0ec8Sopenharmony_ci stage: deploy 1030a46c0ec8Sopenharmony_ci script: 1031a46c0ec8Sopenharmony_ci - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml 1032a46c0ec8Sopenharmony_ci artifacts: 1033a46c0ec8Sopenharmony_ci when: on_failure 1034a46c0ec8Sopenharmony_ci reports: 1035a46c0ec8Sopenharmony_ci junit: results.xml 1036a46c0ec8Sopenharmony_ci allow_failure: true 1037a46c0ec8Sopenharmony_ci 1038a46c0ec8Sopenharmony_cibuild rpm: 1039a46c0ec8Sopenharmony_ci extends: 1040a46c0ec8Sopenharmony_ci - .fdo.distribution-image@fedora 1041a46c0ec8Sopenharmony_ci - .policy 1042a46c0ec8Sopenharmony_ci stage: deploy 1043a46c0ec8Sopenharmony_ci variables: 1044a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_VERSION: '38' 1045a46c0ec8Sopenharmony_ci FDO_DISTRIBUTION_TAG: $FEDORA_TAG 1046a46c0ec8Sopenharmony_ci needs: 1047a46c0ec8Sopenharmony_ci - "fedora:38@container-prep" 1048a46c0ec8Sopenharmony_ci script: 1049a46c0ec8Sopenharmony_ci - meson "$MESON_BUILDDIR" 1050a46c0ec8Sopenharmony_ci - VERSION=$(meson introspect "$MESON_BUILDDIR" --projectinfo | jq -r .version) 1051a46c0ec8Sopenharmony_ci - sed -e "s/@PIPELINEID@/${CI_PIPELINE_ID}/" 1052a46c0ec8Sopenharmony_ci -e "s/@GITVERSION@/${CI_COMMIT_SHA}/" 1053a46c0ec8Sopenharmony_ci -e "s/@VERSION@/${VERSION}/" .gitlab-ci/libinput.spec.in > libinput.spec 1054a46c0ec8Sopenharmony_ci - git config --local user.name 'gitlab CI' 1055a46c0ec8Sopenharmony_ci - git config --local user.email 'noreply@nowhere' 1056a46c0ec8Sopenharmony_ci - git add libinput.spec && git commit -m 'Add libinput.spec for build testing' libinput.spec 1057a46c0ec8Sopenharmony_ci - cd "$MESON_BUILDDIR" 1058a46c0ec8Sopenharmony_ci - meson dist --no-test 1059a46c0ec8Sopenharmony_ci - rpmbuild -ta meson-dist/libinput*.tar.xz 1060a46c0ec8Sopenharmony_ci 1061a46c0ec8Sopenharmony_ci 1062a46c0ec8Sopenharmony_ciwayland-web: 1063a46c0ec8Sopenharmony_ci stage: deploy 1064a46c0ec8Sopenharmony_ci trigger: wayland/wayland.freedesktop.org 1065a46c0ec8Sopenharmony_ci except: 1066a46c0ec8Sopenharmony_ci refs: 1067a46c0ec8Sopenharmony_ci - schedules 1068a46c0ec8Sopenharmony_ci variables: 1069a46c0ec8Sopenharmony_ci MESON_ARGS: '-Ddocumentation=true -Ddebug-gui=false -Dlibwacom=false -Dtests=false' 1070a46c0ec8Sopenharmony_ci MESON_BUILDDIR: 'builddir' 1071a46c0ec8Sopenharmony_ci only: 1072a46c0ec8Sopenharmony_ci refs: 1073a46c0ec8Sopenharmony_ci - main 1074a46c0ec8Sopenharmony_ci variables: 1075a46c0ec8Sopenharmony_ci - $CI_PROJECT_PATH == "libinput/libinput" 1076