gitlab CI: hook up the meson build

Centos doesn't run meson because it's too hard to install the package with dnf
and I can't be bothered going through pip.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2020-02-14 12:06:46 +10:00
parent 6c88d8c1cf
commit caf63dca41
3 changed files with 151 additions and 22 deletions

View file

@ -34,6 +34,7 @@ stages:
- build # for actually building and testing things in a container - build # for actually building and testing things in a container
- VM # for running the test suite in a VM - VM # for running the test suite in a VM
- autotools # distribution builds with autotools - autotools # distribution builds with autotools
- meson # distribution builds with meson
- deploy # trigger wayland's website generation - deploy # trigger wayland's website generation
- container_clean # clean up unused container images - container_clean # clean up unused container images
@ -45,23 +46,23 @@ variables:
# Run dnf install/apt-get install/.. with the list of packages for your # # Run dnf install/apt-get install/.. with the list of packages for your #
# distribution # # distribution #
############################################################################### ###############################################################################
FEDORA_RPMS: 'git gcc gcc-c++ automake autoconf libtool make pkgconfig python3 check-devel valgrind binutils doxygen xz' FEDORA_RPMS: 'git gcc gcc-c++ meson automake autoconf libtool make pkgconfig python3 check-devel valgrind binutils doxygen xz'
CENTOS_RPMS: 'git gcc gcc-c++ automake autoconf libtool make pkgconfig python3 check-devel valgrind binutils xz' CENTOS_RPMS: 'git gcc gcc-c++ automake autoconf libtool make pkgconfig python3 check-devel valgrind binutils xz'
UBUNTU_DEBS: 'git gcc g++ automake autoconf libtool make pkg-config python3 check valgrind binutils doxygen xz-utils' UBUNTU_DEBS: 'git gcc g++ meson automake autoconf libtool make pkg-config python3 check valgrind binutils doxygen xz-utils'
DEBIAN_DEBS: $UBUNTU_DEBS DEBIAN_DEBS: $UBUNTU_DEBS
ARCH_PKGS: 'git gcc automake autoconf libtool make pkgconfig python3 check valgrind binutils doxygen' ARCH_PKGS: 'git gcc meson automake autoconf libtool make pkgconfig python3 check valgrind binutils doxygen'
ALPINE_PKGS: 'git gcc g++ automake autoconf libtool make pkgconfig python3 check-dev valgrind binutils doxygen xz linux-headers' ALPINE_PKGS: 'git gcc g++ meson automake autoconf libtool make pkgconfig python3 check-dev valgrind binutils doxygen xz linux-headers'
############################ end of package lists ############################# ############################ end of package lists #############################
# these tags should be updated each time the list of packages is updated # these tags should be updated each time the list of packages is updated
# changing these will force rebuilding the associated image # changing these will force rebuilding the associated image
# Note: these tags have no meaning and are not tied to a particular # Note: these tags have no meaning and are not tied to a particular
# libevdev version # libevdev version
FEDORA_TAG: '2020-02-17.0' FEDORA_TAG: '2020-02-17.1'
CENTOS_TAG: '2020-02-17.0' CENTOS_TAG: '2020-02-17.1'
DEBIAN_TAG: '2020-02-17.0' DEBIAN_TAG: '2020-02-17.1'
UBUNTU_TAG: '2020-02-17.0' UBUNTU_TAG: '2020-02-17.1'
ARCH_TAG: '2020-02-17.0' ARCH_TAG: '2020-02-17.1'
ALPINE_TAG: '2020-02-17.0' ALPINE_TAG: '2020-02-17.1'
UPSTREAM_REPO: libevdev/libevdev UPSTREAM_REPO: libevdev/libevdev
BUILDAH_IMAGE: $CI_REGISTRY/wayland/ci-templates/buildah:latest BUILDAH_IMAGE: $CI_REGISTRY/wayland/ci-templates/buildah:latest
@ -79,6 +80,7 @@ variables:
artifacts: artifacts:
paths: paths:
- _build/test/test-suite.log - _build/test/test-suite.log
- builddir/meson-logs/testlog-*.txt
expire_in: 1 week expire_in: 1 week
when: on_failure when: on_failure
reports: reports:
@ -96,6 +98,13 @@ variables:
- if ! [[ -z "$MAKE_ARGS" ]]; then make $MAKE_ARGS; fi - if ! [[ -z "$MAKE_ARGS" ]]; then make $MAKE_ARGS; fi
- popd > /dev/null - popd > /dev/null
.meson_build:
extends:
- .default_artifacts
script:
- meson builddir $MESON_ARGS
- ninja -C builddir $NINJA_ARGS
################################################################# #################################################################
# # # #
# prep stage # # prep stage #
@ -485,6 +494,14 @@ alpine:latest@container-clean:
variables: variables:
MAKE_ARGS: "distcheck" MAKE_ARGS: "distcheck"
.meson-build@template:
extends:
- .meson_build
stage: build
dependencies: []
variables:
NINJA_ARGS: "dist"
fedora:30@autotools-build: fedora:30@autotools-build:
extends: .autotools-build@template extends: .autotools-build@template
@ -494,6 +511,15 @@ fedora:30@autotools-build:
FEDORA_VERSION: '30' FEDORA_VERSION: '30'
needs: ['fedora:30@container-prep'] needs: ['fedora:30@container-prep']
fedora:30@meson-build:
extends: .meson-build@template
stage: meson
image: $FEDORA_CONTAINER_IMAGE
variables:
FEDORA_VERSION: '30'
needs: ['fedora:30@container-prep']
fedora:31@autotools-build: fedora:31@autotools-build:
extends: .autotools-build@template extends: .autotools-build@template
stage: autotools stage: autotools
@ -502,6 +528,15 @@ fedora:31@autotools-build:
FEDORA_VERSION: '31' FEDORA_VERSION: '31'
needs: ['fedora:31@container-prep'] needs: ['fedora:31@container-prep']
fedora:31@meson-build:
extends: .meson-build@template
stage: meson
image: $FEDORA_CONTAINER_IMAGE
variables:
FEDORA_VERSION: '31'
needs: ['fedora:31@container-prep']
ubuntu:19.10@autotools-build: ubuntu:19.10@autotools-build:
extends: .autotools-build@template extends: .autotools-build@template
stage: autotools stage: autotools
@ -510,6 +545,15 @@ ubuntu:19.10@autotools-build:
UBUNTU_VERSION: '19.10' UBUNTU_VERSION: '19.10'
needs: ['ubuntu:19.10@container-prep'] needs: ['ubuntu:19.10@container-prep']
ubuntu:19.10@meson-build:
extends: .meson-build@template
stage: meson
image: $UBUNTU_CONTAINER_IMAGE
variables:
UBUNTU_VERSION: '19.10'
needs: ['ubuntu:19.10@container-prep']
ubuntu:19.04@autotools-build: ubuntu:19.04@autotools-build:
extends: .autotools-build@template extends: .autotools-build@template
stage: autotools stage: autotools
@ -518,6 +562,15 @@ ubuntu:19.04@autotools-build:
UBUNTU_VERSION: '19.04' UBUNTU_VERSION: '19.04'
needs: ['ubuntu:19.04@container-prep'] needs: ['ubuntu:19.04@container-prep']
ubuntu:19.04@meson-build:
extends: .meson-build@template
stage: meson
image: $UBUNTU_CONTAINER_IMAGE
variables:
UBUNTU_VERSION: '19.04'
needs: ['ubuntu:19.04@container-prep']
debian:stable@autotools-build: debian:stable@autotools-build:
extends: .autotools-build@template extends: .autotools-build@template
stage: autotools stage: autotools
@ -526,6 +579,15 @@ debian:stable@autotools-build:
DEBIAN_VERSION: 'stable' DEBIAN_VERSION: 'stable'
needs: ['debian:stable@container-prep'] needs: ['debian:stable@container-prep']
debian:stable@meson-build:
extends: .meson-build@template
stage: meson
image: $DEBIAN_CONTAINER_IMAGE
variables:
DEBIAN_VERSION: 'stable'
needs: ['debian:stable@container-prep']
debian:sid@autotools-build: debian:sid@autotools-build:
extends: .autotools-build@template extends: .autotools-build@template
stage: autotools stage: autotools
@ -534,6 +596,15 @@ debian:sid@autotools-build:
DEBIAN_VERSION: 'sid' DEBIAN_VERSION: 'sid'
needs: ['debian:sid@container-prep'] needs: ['debian:sid@container-prep']
debian:sid@meson-build:
extends: .meson-build@template
stage: meson
image: $DEBIAN_CONTAINER_IMAGE
variables:
DEBIAN_VERSION: 'sid'
needs: ['debian:sid@container-prep']
centos:7@autotools-build: centos:7@autotools-build:
extends: .autotools-build@template extends: .autotools-build@template
stage: autotools stage: autotools
@ -543,6 +614,8 @@ centos:7@autotools-build:
MAKE_ARGS: '' # disable distcheck, requires doxygen MAKE_ARGS: '' # disable distcheck, requires doxygen
needs: ['centos:7@container-prep'] needs: ['centos:7@container-prep']
centos:8@autotools-build: centos:8@autotools-build:
extends: .autotools-build@template extends: .autotools-build@template
stage: autotools stage: autotools
@ -552,6 +625,8 @@ centos:8@autotools-build:
MAKE_ARGS: '' # disable distcheck, requires doxygen MAKE_ARGS: '' # disable distcheck, requires doxygen
needs: ['centos:8@container-prep'] needs: ['centos:8@container-prep']
arch:rolling@autotools-build: arch:rolling@autotools-build:
extends: .autotools-build@template extends: .autotools-build@template
stage: autotools stage: autotools
@ -560,6 +635,15 @@ arch:rolling@autotools-build:
ARCH_VERSION: 'rolling' ARCH_VERSION: 'rolling'
needs: ['arch:rolling@container-prep'] needs: ['arch:rolling@container-prep']
arch:rolling@meson-build:
extends: .meson-build@template
stage: meson
image: $ARCH_CONTAINER_IMAGE
variables:
ARCH_VERSION: 'rolling'
needs: ['arch:rolling@container-prep']
alpine:latest@autotools-build: alpine:latest@autotools-build:
extends: .autotools-build@template extends: .autotools-build@template
stage: autotools stage: autotools
@ -568,6 +652,15 @@ alpine:latest@autotools-build:
ALPINE_VERSION: 'latest' ALPINE_VERSION: 'latest'
needs: ['alpine:latest@container-prep'] needs: ['alpine:latest@container-prep']
alpine:latest@meson-build:
extends: .meson-build@template
stage: meson
image: $ALPINE_CONTAINER_IMAGE
variables:
ALPINE_VERSION: 'latest'
needs: ['alpine:latest@container-prep']
# Build argument tests # Build argument tests
# #
# We only run the build option combinations on one image # We only run the build option combinations on one image

View file

@ -19,6 +19,7 @@ distributions = [
'MAKE_ARGS': ('\'\' # disable distcheck, requires doxygen'), 'MAKE_ARGS': ('\'\' # disable distcheck, requires doxygen'),
} }
}, },
'meson': False
}, },
{ {
'name': 'centos', 'version': '8', 'name': 'centos', 'version': '8',
@ -27,6 +28,7 @@ distributions = [
'MAKE_ARGS': ('\'\' # disable distcheck, requires doxygen'), 'MAKE_ARGS': ('\'\' # disable distcheck, requires doxygen'),
} }
}, },
'meson': False
}, },
{'name': 'arch', 'version': 'rolling', {'name': 'arch', 'version': 'rolling',
'flavor': 'archlinux' }, # see https://gitlab.freedesktop.org/wayland/ci-templates/merge_requests/19 'flavor': 'archlinux' }, # see https://gitlab.freedesktop.org/wayland/ci-templates/merge_requests/19

View file

@ -34,6 +34,7 @@ stages:
- build # for actually building and testing things in a container - build # for actually building and testing things in a container
- VM # for running the test suite in a VM - VM # for running the test suite in a VM
- autotools # distribution builds with autotools - autotools # distribution builds with autotools
- meson # distribution builds with meson
- deploy # trigger wayland's website generation - deploy # trigger wayland's website generation
- container_clean # clean up unused container images - container_clean # clean up unused container images
@ -45,23 +46,23 @@ variables:
# Run dnf install/apt-get install/.. with the list of packages for your # # Run dnf install/apt-get install/.. with the list of packages for your #
# distribution # # distribution #
############################################################################### ###############################################################################
FEDORA_RPMS: 'git gcc gcc-c++ automake autoconf libtool make pkgconfig python3 check-devel valgrind binutils doxygen xz' FEDORA_RPMS: 'git gcc gcc-c++ meson automake autoconf libtool make pkgconfig python3 check-devel valgrind binutils doxygen xz'
CENTOS_RPMS: 'git gcc gcc-c++ automake autoconf libtool make pkgconfig python3 check-devel valgrind binutils xz' CENTOS_RPMS: 'git gcc gcc-c++ automake autoconf libtool make pkgconfig python3 check-devel valgrind binutils xz'
UBUNTU_DEBS: 'git gcc g++ automake autoconf libtool make pkg-config python3 check valgrind binutils doxygen xz-utils' UBUNTU_DEBS: 'git gcc g++ meson automake autoconf libtool make pkg-config python3 check valgrind binutils doxygen xz-utils'
DEBIAN_DEBS: $UBUNTU_DEBS DEBIAN_DEBS: $UBUNTU_DEBS
ARCH_PKGS: 'git gcc automake autoconf libtool make pkgconfig python3 check valgrind binutils doxygen' ARCH_PKGS: 'git gcc meson automake autoconf libtool make pkgconfig python3 check valgrind binutils doxygen'
ALPINE_PKGS: 'git gcc g++ automake autoconf libtool make pkgconfig python3 check-dev valgrind binutils doxygen xz linux-headers' ALPINE_PKGS: 'git gcc g++ meson automake autoconf libtool make pkgconfig python3 check-dev valgrind binutils doxygen xz linux-headers'
############################ end of package lists ############################# ############################ end of package lists #############################
# these tags should be updated each time the list of packages is updated # these tags should be updated each time the list of packages is updated
# changing these will force rebuilding the associated image # changing these will force rebuilding the associated image
# Note: these tags have no meaning and are not tied to a particular # Note: these tags have no meaning and are not tied to a particular
# libevdev version # libevdev version
FEDORA_TAG: '2020-02-17.0' FEDORA_TAG: '2020-02-17.1'
CENTOS_TAG: '2020-02-17.0' CENTOS_TAG: '2020-02-17.1'
DEBIAN_TAG: '2020-02-17.0' DEBIAN_TAG: '2020-02-17.1'
UBUNTU_TAG: '2020-02-17.0' UBUNTU_TAG: '2020-02-17.1'
ARCH_TAG: '2020-02-17.0' ARCH_TAG: '2020-02-17.1'
ALPINE_TAG: '2020-02-17.0' ALPINE_TAG: '2020-02-17.1'
UPSTREAM_REPO: libevdev/libevdev UPSTREAM_REPO: libevdev/libevdev
BUILDAH_IMAGE: $CI_REGISTRY/wayland/ci-templates/buildah:latest BUILDAH_IMAGE: $CI_REGISTRY/wayland/ci-templates/buildah:latest
@ -79,6 +80,7 @@ variables:
artifacts: artifacts:
paths: paths:
- _build/test/test-suite.log - _build/test/test-suite.log
- builddir/meson-logs/testlog-*.txt
expire_in: 1 week expire_in: 1 week
when: on_failure when: on_failure
reports: reports:
@ -96,6 +98,13 @@ variables:
- if ! [[ -z "$MAKE_ARGS" ]]; then make $MAKE_ARGS; fi - if ! [[ -z "$MAKE_ARGS" ]]; then make $MAKE_ARGS; fi
- popd > /dev/null - popd > /dev/null
.meson_build:
extends:
- .default_artifacts
script:
- meson builddir $MESON_ARGS
- ninja -C builddir $NINJA_ARGS
################################################################# #################################################################
# # # #
# prep stage # # prep stage #
@ -282,6 +291,14 @@ check-commit:
variables: variables:
MAKE_ARGS: "distcheck" MAKE_ARGS: "distcheck"
.meson-build@template:
extends:
- .meson_build
stage: build
dependencies: []
variables:
NINJA_ARGS: "dist"
{% for distro in distributions %} {% for distro in distributions %}
{{ distro.name }}:{{ distro.version }}@autotools-build: {{ distro.name }}:{{ distro.version }}@autotools-build:
@ -297,6 +314,23 @@ check-commit:
{% endfor %} {% endfor %}
{% endif %} {% endif %}
needs: ['{{ distro.name }}:{{ distro.version }}@container-prep'] needs: ['{{ distro.name }}:{{ distro.version }}@container-prep']
{% if distro.meson|default(True) %}
{{ distro.name }}:{{ distro.version }}@meson-build:
extends: .meson-build@template
stage: meson
image: ${{ distro.name.upper() }}_CONTAINER_IMAGE
variables:
{{ distro.name.upper() }}_VERSION: '{{ distro.version }}'
{# Where we have extra_variables defined, add them to the list #}
{% if distro.build is defined and distro.build.extra_variables is defined %}
{% for key, value in distro.build.extra_variables.items() %}
{{ key }}: {{ value }}
{% endfor %}
{% endif %}
needs: ['{{ distro.name }}:{{ distro.version }}@container-prep']
{% endif %}
{% endfor %} {% endfor %}
# Build argument tests # Build argument tests