1 # vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0 filetype=yaml:
3 ########################################
5 # THIS FILE IS GENERATED, DO NOT EDIT #
7 ########################################
9 # This is a bit complicated for two reasons:
10 # - we really want to run dnf/apt/... only once, updating on the test runner for
11 # each job takes forever. So we create a container image for each distribution
12 # tested, then run the tests on this container image.
14 # This is handled by the ci-templates, ensuring containers are only rebuilt
15 # when the TAG changes.
17 # - GitLab only allows one script: set per job but we have a bunch of commands
18 # we need to re-run for each build (meson && ninja && etc). YAML cannot merge
19 # arrays so we're screwed.
21 # So instead we use a default_build template and override everything with
22 # variables. The only two variables that matter:
23 # MESON_ARGS=-Denable-something=true
24 # NINJA_ARGS=dist ... to run 'ninja -C builddir dist'
25 # Note that you cannot use scripts: in any target if you expect default_build
29 # All jobs must follow the naming scheme of
30 # <distribution>:<version>@activity:
31 # e.g. fedora:31@build-default
33 .templates_sha: &template_sha 16f790f93f893394b70d7048fb0e8a981ceaa3c5 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
36 # Alpine container builder template
37 - project: 'freedesktop/ci-templates'
39 file: '/templates/alpine.yml'
40 # Arch container builder template
41 - project: 'freedesktop/ci-templates'
43 file: '/templates/arch.yml'
44 # Debian container builder template
45 - project: 'freedesktop/ci-templates'
47 file: '/templates/debian.yml'
48 # Fedora container builder template
49 - project: 'freedesktop/ci-templates'
51 file: '/templates/fedora.yml'
52 # Ubuntu container builder template
53 - project: 'freedesktop/ci-templates'
55 file: '/templates/ubuntu.yml'
56 - project: 'freedesktop/ci-templates'
58 file: '/templates/ci-fairy.yml'
61 - sanity check # CI/commit checks
62 - prep # prep work like rebuilding the container images if there is a change
63 - build # for actually building and testing things in a container
64 - VM # for running the test suite in a VM
65 - valgrind # for running the test suite under valgrind in a VM
66 - distro # distribs test
67 - deploy # trigger wayland's website generation
68 - container_clean # clean up unused container images (scheduled jobs only)
71 ###############################################################################
72 # This is the list of packages required to build libinput with the default #
75 # Run dnf install/apt-get install/.. with the list of packages for your #
78 # See the documentation here: #
79 # https://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html #
80 ###############################################################################
81 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 gtk3-devel glib2-devel mtdev-devel diffutils valgrind'
82 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'
83 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'
84 ARCH_PACKAGES: 'git gcc pkgconfig meson check libsystemd libevdev doxygen graphviz python-sphinx python-recommonmark python-sphinx_rtd_theme python-pytest-xdist libwacom gtk3 mtdev diffutils'
85 ALPINE_PACKAGES: 'git gcc build-base pkgconfig meson check-dev eudev-dev libevdev-dev libwacom-dev cairo-dev gtk+3.0-dev mtdev-dev bash'
86 FREEBSD_PACKAGES: 'libepoll-shim libudev-devd libevdev libwacom gtk3 libmtdev'
87 FREEBSD_BUILD_PKGS: 'meson'
88 ############################ end of package lists #############################
90 # these tags should be updated each time the list of packages is updated
91 # changing these will force rebuilding the associated image
92 # Note: these tags have no meaning and are not tied to a particular
94 FEDORA_TAG: '2020-11-16.0'
95 DEBIAN_TAG: '2020-11-16.0'
96 UBUNTU_TAG: '2020-11-16.0'
97 ARCH_TAG: '2020-11-16.0'
98 ALPINE_TAG: '2020-11-16.0'
99 FREEBSD_TAG: '2020-11-16.0'
100 QEMU_TAG: 'qemu-vm-2020-11-16.0'
102 FREEBSD_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/freebsd/11.2:$FREEBSD_TAG
103 FDO_UPSTREAM_REPO: libinput/libinput
105 MESON_BUILDDIR: "build dir"
108 MESON_TEST_ARGS: '--no-suite=hardware'
110 # udev isn't available/working properly in the containers
111 UDEV_NOT_AVAILABLE: 1
118 - runner_system_failure
119 - stuck_or_timeout_failure
120 # cancel run when a newer version is pushed to the branch
125 name: "meson-logs-$CI_JOB_NAME"
129 - $MESON_BUILDDIR/meson-logs
131 junit: $MESON_BUILDDIR/junit-*.xml
134 #################################################################
136 # sanity check stage #
138 #################################################################
140 # Re-generate the CI script and make sure it's the one currently checked in
141 # If this job fails, re-generate the gitlab-ci.yml script, see
142 # $SRCDIR/.gitlab-ci/generate-gitlab-ci.py
149 - ci-fairy generate-template --verify && exit 0 || true
150 - echo "Committed gitlab-ci.yml differs from generated gitlab-ci.yml. Please verify"
154 # Verify that commit messages are as expected, signed-off, etc.
162 - ci-fairy check-commits --signed-off-by --junit-xml=results.xml
164 - master@libinput/libinput
171 #################################################################
175 #################################################################
178 # Note: images are rebuilt weekly with a scheduled pipeline with FDO_FORCE_REBUILD set
183 - .fdo.qemu-build@fedora
190 FDO_DISTRIBUTION_VERSION: 32
191 FDO_DISTRIBUTION_TAG: $QEMU_TAG
192 FDO_DISTRIBUTION_PACKAGES: $FEDORA_PACKAGES
195 fedora:31@container-prep:
197 - .fdo.container-build@fedora
202 FDO_DISTRIBUTION_VERSION: '31'
203 FDO_DISTRIBUTION_PACKAGES: $FEDORA_PACKAGES
204 FDO_DISTRIBUTION_TAG: $FEDORA_TAG
206 fedora:32@container-prep:
208 - .fdo.container-build@fedora
213 FDO_DISTRIBUTION_VERSION: '32'
214 FDO_DISTRIBUTION_PACKAGES: $FEDORA_PACKAGES
215 FDO_DISTRIBUTION_TAG: $FEDORA_TAG
217 debian:stable@container-prep:
219 - .fdo.container-build@debian
224 FDO_DISTRIBUTION_VERSION: 'stable'
225 FDO_DISTRIBUTION_PACKAGES: $DEBIAN_PACKAGES
226 FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
228 ubuntu:20.04@container-prep:
230 - .fdo.container-build@ubuntu
235 FDO_DISTRIBUTION_VERSION: '20.04'
236 FDO_DISTRIBUTION_PACKAGES: $UBUNTU_PACKAGES
237 FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
239 ubuntu:20.10@container-prep:
241 - .fdo.container-build@ubuntu
246 FDO_DISTRIBUTION_VERSION: '20.10'
247 FDO_DISTRIBUTION_PACKAGES: $UBUNTU_PACKAGES
248 FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
250 arch:rolling@container-prep:
252 - .fdo.container-build@arch
257 FDO_DISTRIBUTION_VERSION: 'rolling'
258 FDO_DISTRIBUTION_PACKAGES: $ARCH_PACKAGES
259 FDO_DISTRIBUTION_TAG: $ARCH_TAG
261 alpine:latest@container-prep:
263 - .fdo.container-build@alpine
268 FDO_DISTRIBUTION_VERSION: 'latest'
269 FDO_DISTRIBUTION_PACKAGES: $ALPINE_PACKAGES
270 FDO_DISTRIBUTION_TAG: $ALPINE_TAG
274 # Note that we want to use the latest buildah image, and for that
275 # we use one of the .fdo.container-build@distribution by replacing the
277 .freebsd@container-prep:
280 - .fdo.container-build@fedora
283 # log in to the registry
284 - podman login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
286 # get the full container image name
287 - export IMAGE=freebsd/$FREEBSD_VERSION:$FREEBSD_TAG
289 - if [[ x"$FDO_FORCE_REBUILD" != x ]] ; then touch .rebuild; fi
291 # pull the latest upstream image if it exists
292 - test -e .rebuild || skopeo copy --dest-creds $CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD
293 docker://$CI_REGISTRY/$FDO_UPSTREAM_REPO/$IMAGE
294 docker://$CI_REGISTRY_IMAGE/$IMAGE && exit 0 || true ;
296 # check if our image is already in the current registry
297 - test -e .rebuild || skopeo inspect docker://$CI_REGISTRY_IMAGE/$IMAGE > /dev/null && exit 0 || true ;
299 - export BUILDAH_RUN="buildah run --isolation chroot"
300 - export BUILDAH_COMMIT="buildah commit --format docker"
301 - buildcntr=$(buildah from --quiet myfreeweb/freebsd-cross:latest)
302 - $BUILDAH_RUN $buildcntr apk add --no-cache $FREEBSD_BUILD_PKGS
303 - $BUILDAH_RUN $buildcntr pkg -r /freebsd update -f
304 - $BUILDAH_RUN $buildcntr pkg -r /freebsd install -y $FREEBSD_PACKAGES
305 - buildah config --workingdir /app $buildcntr
306 # tag the current container
307 - $BUILDAH_COMMIT $buildcntr $FREEBSD_CONTAINER_IMAGE
308 # clean up the working container
309 - buildah rm $buildcntr
311 # push the container image to the libinput registry
312 - podman push --quiet $FREEBSD_CONTAINER_IMAGE
313 - skopeo copy --dest-creds $CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD
314 docker://$FREEBSD_CONTAINER_IMAGE
315 docker://$CI_REGISTRY_IMAGE/freebsd/$FREEBSD_VERSION:$CI_JOB_ID
317 freebsd:11.2@container-prep:
319 - .freebsd@container-prep
322 FREEBSD_VERSION: "11.2"
325 #################################################################
327 # container clean stage #
328 # run during the clean stage #
330 #################################################################
333 # This stage will look for the container images we currently have in
334 # the registry and will remove any that are not tagged with the provided
335 # $container_image:$tag
341 stage: container_clean
343 # Go to your Profile, Settings, Access Tokens
344 # Create a personal token with 'api' scope, copy the value.
345 # Go to CI/CD, Schedules, schedule a new monthly job (or edit the existing one)
346 # Define a variable of type File named AUTHFILE. Content is that token
348 - ci-fairy -v --authfile $AUTHFILE delete-image
349 --repository $FDO_DISTRIBUTION_NAME/$FDO_DISTRIBUTION_VERSION
350 --exclude-tag $FDO_DISTRIBUTION_TAG
356 fedora:31@container-clean:
361 CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
362 FDO_DISTRIBUTION_VERSION: '31'
363 FDO_DISTRIBUTION_TAG: $FEDORA_TAG
365 fedora:32@container-clean:
370 CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
371 FDO_DISTRIBUTION_VERSION: '32'
372 FDO_DISTRIBUTION_TAG: $FEDORA_TAG
374 debian:stable@container-clean:
379 CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/debian/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
380 FDO_DISTRIBUTION_VERSION: 'stable'
381 FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
383 ubuntu:20.04@container-clean:
388 CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/ubuntu/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
389 FDO_DISTRIBUTION_VERSION: '20.04'
390 FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
392 ubuntu:20.10@container-clean:
397 CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/ubuntu/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
398 FDO_DISTRIBUTION_VERSION: '20.10'
399 FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
401 arch:rolling@container-clean:
406 CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/arch/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
407 FDO_DISTRIBUTION_VERSION: 'rolling'
408 FDO_DISTRIBUTION_TAG: $ARCH_TAG
410 alpine:latest@container-clean:
415 CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/alpine/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
416 FDO_DISTRIBUTION_VERSION: 'latest'
417 FDO_DISTRIBUTION_TAG: $ALPINE_TAG
420 freebsd:11.2@container-clean:
425 CURRENT_CONTAINER_IMAGE: $FREEBSD_CONTAINER_IMAGE
427 #################################################################
431 #################################################################
439 - .gitlab-ci/meson-build.sh
446 .check_tainted: &check_tainted |
447 # make sure the kernel is not tainted
448 if [[ "$(ssh localhost -p 5555 cat /proc/sys/kernel/tainted)" -gt 0 ]];
450 echo tainted kernel ;
454 # Run in a test suite. Special variables:
455 # - SUITES: the meson test suites to run, or
456 # - SUITE_NAMES: all elements will be expanded to libinput-test-suite-$value
457 # Set one or the other, not both.
461 - .fdo.distribution-image@fedora
466 MESON_BUILDDIR: build_dir
467 # remove the global --no-suite=hardware
470 - if ! [[ -z $SUITE_NAMES ]]; then SUITES=$(echo $SUITE_NAMES | sed 's/\([^ ]*\)/libinput-test-suite-\1/g'); fi
471 - echo "Testing $SUITES"
473 # start our vm, no args required
474 - /app/vmctl start || (echo "Error - Failed to start the VM." && exit 1)
479 - echo "CI_JOB_ID=\"$CI_JOB_ID\"" > sshenv
480 - echo "CI_JOB_NAME=\"$CI_JOB_NAME\"" >> sshenv
481 - echo "MESON_ARGS=\"$MESON_ARGS\"" >> sshenv
482 - echo "MESON_BUILDDIR=\"$MESON_BUILDDIR\"" >> sshenv
483 - echo "MESON_TEST_ARGS=\"$MESON_TEST_ARGS $SUITES\"" >> sshenv
484 - echo "NINJA_ARGS=\"$NINJA_ARGS\"" >> sshenv
485 - "scp sshenv vm:~/$CI_PROJECT_NAME/.meson_environment"
486 - /app/vmctl exec "cd $CI_PROJECT_NAME ; .gitlab-ci/meson-build.sh" && touch .success || true
487 # no matter the results of the tests, we want to fetch the logs
488 - scp -r vm:$CI_PROJECT_NAME/$MESON_BUILDDIR .
494 - if [[ ! -e .success ]] ;
499 name: "qemu-meson-logs-$CI_JOB_NAME"
503 - $MESON_BUILDDIR/meson-logs
506 junit: $MESON_BUILDDIR/junit-*.xml
514 .fedora:32@test-suite-vm:
518 FDO_DISTRIBUTION_VERSION: 32
519 FDO_DISTRIBUTION_TAG: $QEMU_TAG
521 - "fedora:32@qemu-prep"
526 - .fedora:32@test-suite-vm
528 SUITE_NAMES: 'touchpad'
530 vm-touchpad-no-libwacom:
534 MESON_ARGS: '-Dlibwacom=false'
538 - .fedora:32@test-suite-vm
546 MESON_ARGS: '-Dlibwacom=false'
550 - .fedora:32@test-suite-vm
552 SUITE_NAMES: 'tablet'
554 vm-tablet-no-libwacom:
558 MESON_ARGS: '-Dlibwacom=false'
562 - .fedora:32@test-suite-vm
564 SUITE_NAMES: 'gestures device'
566 vm-gestures-device-no-libwacom:
570 MESON_ARGS: '-Dlibwacom=false'
574 - .fedora:32@test-suite-vm
576 SUITE_NAMES: 'context config misc events totem udev lid log timer tablet-mode quirks trackball pad path keyboard switch touch trackpoint'
578 vm-others-no-libwacom:
582 MESON_ARGS: '-Dlibwacom=false'
586 - .fedora:32@test-suite-vm
588 SUITE_NAMES: 'pointer'
590 vm-pointer-no-libwacom:
594 MESON_ARGS: '-Dlibwacom=false'
597 vm-valgrind-touchpad:
602 MESON_TEST_ARGS: '--setup=valgrind'
609 MESON_TEST_ARGS: '--setup=valgrind'
616 MESON_TEST_ARGS: '--setup=valgrind'
618 vm-valgrind-gestures-device:
623 MESON_TEST_ARGS: '--setup=valgrind'
630 MESON_TEST_ARGS: '--setup=valgrind'
637 MESON_TEST_ARGS: '--setup=valgrind'
640 .fedora-build@template:
642 - .fdo.distribution-image@fedora
645 FDO_DISTRIBUTION_VERSION: '32'
646 FDO_DISTRIBUTION_TAG: $FEDORA_TAG
648 - "fedora:32@container-prep"
650 default-build-release@fedora:32:
653 - .fedora-build@template
655 MESON_ARGS: "-Dbuildtype=release"
658 scan-build@fedora:32:
660 - .fedora-build@template
662 NINJA_ARGS: scan-build
665 - dnf install -y clang-analyzer findutils
667 - test ! -d "$MESON_BUILDDIR"/meson-logs/scanbuild && exit 0
668 - test $(find "$MESON_BUILDDIR"/meson-logs/scanbuild -maxdepth 0 ! -empty -exec echo "not empty" \; | wc -l) -eq 0 && exit 0
669 - echo "Check scan-build results"
672 # Below jobs are build option combinations. We only
673 # run them on one image, they shouldn't fail on one distro
674 # when they succeed on another.
676 build-no-libwacom@fedora:32:
678 - .fedora-build@template
680 MESON_ARGS: "-Dlibwacom=false"
682 build-no-libwacom-nodeps@fedora:32:
684 - .fedora-build@template
686 MESON_ARGS: "-Dlibwacom=false"
688 - dnf remove -y libwacom libwacom-devel
690 build-no-docs@fedora:32:
692 - .fedora-build@template
694 MESON_ARGS: "-Ddocumentation=false"
696 build-no-docs-nodeps@fedora:32:
698 - .fedora-build@template
700 MESON_ARGS: "-Ddocumentation=false"
702 - dnf remove -y doxygen graphviz
704 build-no-debuggui@fedora:32:
706 - .fedora-build@template
708 MESON_ARGS: "-Ddebug-gui=false"
710 build-no-debuggui-nodeps@fedora:32:
712 - .fedora-build@template
714 MESON_ARGS: "-Ddebug-gui=false"
716 - dnf remove -y gtk3-devel
718 build-no-tests@fedora:32:
720 - .fedora-build@template
722 MESON_ARGS: "-Dtests=false"
724 build-no-tests-nodeps@fedora:32:
726 - .fedora-build@template
728 MESON_ARGS: "-Dtests=false"
730 - dnf remove -y check-devel
734 - .fedora-build@template
736 MESON_TEST_ARGS: '--suite=valgrind --no-suite=hardware --setup=valgrind'
738 - dnf install -y valgrind
740 # Python checks, only run on Fedora
742 usr-bin-env-python@fedora:32:
744 - .fedora-build@template
747 if git grep -l '^#!/usr/bin/python'; then
748 echo "Use '/usr/bin/env python3' in the above files";
754 - .fedora-build@template
756 - dnf install -y python3-flake8
758 - flake8-3 --ignore=W501,E501,W504 $(git grep -l '^#!/usr/bin/env python3')
764 # This requires the COVERITY_SCAN_TOKEN. Log into scan.coverity.com and get
765 # the token from the respective project settings page.
766 # Schedule a pipeline and set a variable COVERITY_SCAN_TOKEN with the token value.
767 # https://gitlab.freedesktop.org/$CI_PROJECT_PATH/-/pipeline_schedules
768 # Email from coverity will be sent to the GITLAB_USER_EMAIL that scheduled the
771 # Coverity ratelimits submissions and the coverity tools download is about
772 # 700M, do not run this too often.
776 - .fdo.distribution-image@debian
780 FDO_DISTRIBUTION_VERSION: 'stable'
781 FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
782 # so git-describe works, or should work
786 - $COVERITY_SCAN_TOKEN
788 - curl https://scan.coverity.com/download/linux64
789 -o /tmp/cov-analysis-linux64.tgz
790 --form project=$CI_PROJECT_NAME
791 --form token=$COVERITY_SCAN_TOKEN
792 - tar xfz /tmp/cov-analysis-linux64.tgz
793 # coverity has special build options in meson, make sure we enable those
794 - meson coverity-build -Ddocumentation=false -Dcoverity=true
795 - cov-analysis-linux64-*/bin/cov-build --dir cov-int ninja -C coverity-build
796 - tar cfz cov-int.tar.gz cov-int
797 - curl https://scan.coverity.com/builds?project=$CI_PROJECT_NAME
798 --form token=$COVERITY_SCAN_TOKEN --form email=$GITLAB_USER_EMAIL
799 --form file=@cov-int.tar.gz --form version="$(git describe --tags)"
800 --form description="$(git describe --tags) / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID"
802 name: "coverity-submit-data"
808 - "debian:stable@container-prep"
810 #################################################################
814 #################################################################
816 fedora:31@default-build:
820 - .fdo.distribution-image@fedora
822 FDO_DISTRIBUTION_VERSION: '31'
823 FDO_DISTRIBUTION_TAG: $FEDORA_TAG
825 - "fedora:31@container-prep"
828 fedora:32@default-build:
832 - .fdo.distribution-image@fedora
834 FDO_DISTRIBUTION_VERSION: '32'
835 FDO_DISTRIBUTION_TAG: $FEDORA_TAG
837 - "fedora:32@container-prep"
840 debian:stable@default-build:
844 - .fdo.distribution-image@debian
846 FDO_DISTRIBUTION_VERSION: 'stable'
847 FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
849 - "debian:stable@container-prep"
852 ubuntu:20.04@default-build:
856 - .fdo.distribution-image@ubuntu
858 FDO_DISTRIBUTION_VERSION: '20.04'
859 FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
861 - "ubuntu:20.04@container-prep"
864 ubuntu:20.10@default-build:
868 - .fdo.distribution-image@ubuntu
870 FDO_DISTRIBUTION_VERSION: '20.10'
871 FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
873 - "ubuntu:20.10@container-prep"
876 arch:rolling@default-build:
880 - .fdo.distribution-image@arch
882 FDO_DISTRIBUTION_VERSION: 'rolling'
883 FDO_DISTRIBUTION_TAG: $ARCH_TAG
885 - "arch:rolling@container-prep"
888 alpine:latest@default-build:
892 - .fdo.distribution-image@alpine
894 FDO_DISTRIBUTION_VERSION: 'latest'
895 FDO_DISTRIBUTION_TAG: $ALPINE_TAG
896 MESON_ARGS: '-Ddocumentation=false' # alpine does not have python-recommonmark
897 MESON_TEST_ARGS: '' # litest-selftest fails on musl
899 - "alpine:latest@container-prep"
910 image: $FREEBSD_CONTAINER_IMAGE
912 MESON_ARGS: '--cross-file freebsd -Ddocumentation=false -Dtests=false -Depoll-dir=/freebsd/usr/local/'
913 # Can't run FreeBSD tests on Linux machine, so MESON_TEST_ARGS shouldn't be "test"
916 freebsd:11.2@default-build:
920 - "freebsd:11.2@container-prep"
922 #################################################################
926 #################################################################
929 # Verify that the merge request has the allow-collaboration checkbox ticked
937 - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml
946 - .fdo.distribution-image@fedora
950 FDO_DISTRIBUTION_VERSION: '32'
951 FDO_DISTRIBUTION_TAG: $FEDORA_TAG
953 - "fedora:32@container-prep"
955 - dnf install -y rpmdevtools jq
956 - meson "$MESON_BUILDDIR"
957 - VERSION=$(meson introspect "$MESON_BUILDDIR" --projectinfo | jq -r .version)
958 - sed -e "s/@PIPELINEID@/${CI_PIPELINE_ID}/"
959 -e "s/@GITVERSION@/${CI_COMMIT_SHA}/"
960 -e "s/@VERSION@/${VERSION}/" .gitlab-ci/libinput.spec.in > libinput.spec
961 - git config --local user.name 'gitlab CI'
962 - git config --local user.email 'noreply@nowhere'
963 - git add libinput.spec && git commit -m 'Add libinput.spec for build testing' libinput.spec
964 - cd "$MESON_BUILDDIR"
965 - meson dist --no-test
966 - rpmbuild -ta meson-dist/libinput*.tar.xz
971 trigger: wayland/wayland.freedesktop.org
976 MESON_ARGS: '-Ddebug-gui=false -Dlibwacom=false -Dtests=false'
977 MESON_BUILDDIR: 'builddir'
982 - $CI_PROJECT_PATH == "libinput/libinput"