stages:
- container_prep # rebuild the container images if there is a change
- - build # for actually building things
+ - build # for actually building and testing things in a container
+ - VM # for running the test suite in a VM
+ - distro # distribs test
- deploy # trigger wayland's website generation
- container_clean # clean up unused container images
fi
fedora:30@test-suite-vm:
- stage: build
+ stage: VM
image: $QEMU_CONTAINER_IMAGE
tags:
- kvm
- console.out
allow_failure: true
+ needs: ['fedora:30@qemu-prep']
fedora:30@test-suite-vm-valgrind:
extends: fedora:30@test-suite-vm
image: $FEDORA_CONTAINER_IMAGE
fedora:29@default-build:
+ stage: distro
extends: .fedora-build@template
variables:
FEDORA_VERSION: 29
+ needs: ['fedora:29@container-prep']
fedora:30@default-build:
+ stage: distro
extends: .fedora-build@template
variables:
FEDORA_VERSION: 30
+ needs: ['fedora:30@container-prep']
fedora:30@default-build-release:
+ stage: distro
extends: .fedora-build@template
variables:
FEDORA_VERSION: 30
MESON_ARGS: "-Dbuildtype=release"
CFLAGS: "-Werror"
+ needs: ['fedora:30@container-prep']
fedora:30@scan-build:
extends: .fedora-build@template
- test $(find "$MESON_BUILDDIR"/meson-logs/scanbuild -maxdepth 0 ! -empty -exec echo "not empty" \; | wc -l) -eq 0 && exit 0
- echo "Check scan-build results"
- /bin/false
+ needs: ['fedora:30@container-prep']
# Below jobs are build option combinations. We only
# run them on one image, they shouldn't fail on one distro
variables:
FEDORA_VERSION: 30
MESON_ARGS: "-Dlibwacom=false"
+ needs: ['fedora:30@container-prep']
fedora:30@build-no-libwacom-nodeps:
extends: .fedora-build@template
MESON_ARGS: "-Dlibwacom=false"
before_script:
- dnf remove -y libwacom libwacom-devel
+ needs: ['fedora:30@container-prep']
fedora:30@build-no-docs:
extends: .fedora-build@template
variables:
FEDORA_VERSION: 30
MESON_ARGS: "-Ddocumentation=false"
+ needs: ['fedora:30@container-prep']
fedora:30@build-no-docs-nodeps:
extends: .fedora-build@template
MESON_ARGS: "-Ddocumentation=false"
before_script:
- dnf remove -y doxygen graphviz
+ needs: ['fedora:30@container-prep']
fedora:30@build-no-debuggui:
extends: .fedora-build@template
variables:
FEDORA_VERSION: 30
MESON_ARGS: "-Ddebug-gui=false"
+ needs: ['fedora:30@container-prep']
fedora:30@build-no-debuggui-nodeps:
extends: .fedora-build@template
MESON_ARGS: "-Ddebug-gui=false"
before_script:
- dnf remove -y gtk3-devel
+ needs: ['fedora:30@container-prep']
fedora:30@build-no-tests:
extends: .fedora-build@template
variables:
FEDORA_VERSION: 30
MESON_ARGS: "-Dtests=false"
+ needs: ['fedora:30@container-prep']
fedora:30@build-no-tests-nodeps:
extends: .fedora-build@template
MESON_ARGS: "-Dtests=false"
before_script:
- dnf remove -y check-devel
+ needs: ['fedora:30@container-prep']
fedora:30@valgrind:
extends: .fedora-build@template
MESON_TEST_ARGS: '--suite=valgrind --no-suite=hardware --setup=valgrind'
before_script:
- dnf install -y valgrind
+ needs: ['fedora:30@container-prep']
# Python checks, only run on Fedora
echo "Use '/usr/bin/env python3' in the above files";
/bin/false
fi
+ needs: ['fedora:30@container-prep']
fedora:30@flake8:
extends: .fedora-build@template
- dnf install -y python3-flake8
script:
- flake8-3 --ignore=W501,E501,W504 $(git grep -l '^#!/usr/bin/env python3')
+ needs: ['fedora:30@container-prep']
#
# Ubuntu
#
.ubuntu@template:
+ stage: distro
extends: .build@template
image: $UBUNTU_CONTAINER_IMAGE
extends: .ubuntu@template
variables:
UBUNTU_VERSION: "18.10"
+ needs: ['ubuntu:18.10@container-prep']
ubuntu:19.04@default-build:
extends: .ubuntu@template
variables:
UBUNTU_VERSION: "19.04"
+ needs: ['ubuntu:19.04@container-prep']
#
# Arch
#
.arch@template:
+ stage: distro
extends: .build@template
image: $ARCH_CONTAINER_IMAGE
arch:rolling@default-build:
extends: .arch@template
+ needs: ['arch:rolling@container-prep']
#
# FreeBSD
#
.freebsd@template:
+ stage: distro
extends: .build@template
image: $FREEBSD_CONTAINER_IMAGE
variables:
freebsd:11.2@default-build:
extends: .freebsd@template
+ needs: ['freebsd:11.2@container-prep']
#
# deploy