From ec1ce9fc260e796b41b1435097492b28868e7ffe Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Tue, 3 Aug 2021 13:11:51 +0100 Subject: [PATCH] ci: Add clang build jobs Signed-off-by: Daniel Stone --- .gitlab-ci.yml | 29 +++++++++++++++++++++++++++-- .gitlab-ci/debian-install.sh | 3 +++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 913c814a..a3017fa4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -43,7 +43,7 @@ variables: FDO_UPSTREAM_REPO: wayland/weston FDO_REPO_SUFFIX: "$BUILD_OS/$BUILD_ARCH" - FDO_DISTRIBUTION_TAG: '2021-08-02.3-aarch64-virt' + FDO_DISTRIBUTION_TAG: '2021-08-03.2-clang' include: @@ -167,6 +167,12 @@ aarch64-debian-container_prep: - export TESTS_RES_PATH="$BUILDDIR/tests-res.txt" - mkdir "$BUILDDIR" "$PREFIX" +.build-with-clang: + variables: + CC: clang-8 + CC_LD: lld-8 + MESON_TOOLCHAIN_OPTIONS: "$MESON_OPTIONS -Db_lundef=false" # clang+ASan+undef=boom + # Extends the core build templates to also provide for running our testing. We # run this inside a virtme (qemu wrapper) VM environment so we can test the DRM # backend using the 'vkms' virtual driver under Linux. @@ -175,7 +181,7 @@ aarch64-debian-container_prep: - .ci-rules script: - cd "$BUILDDIR" - - meson --prefix="$PREFIX" -Db_sanitize=address ${MESON_OPTIONS} .. + - meson --prefix="$PREFIX" -Db_sanitize=address ${MESON_OPTIONS} ${MESON_TOOLCHAIN_OPTIONS} .. - ninja -k0 -j${FDO_CI_CONCURRENT:-4} - ninja install - test -n "${QEMU_SMP}" || QEMU_SMP=${FDO_CI_CONCURRENT:-4} @@ -293,6 +299,18 @@ aarch64-debian-full-build: - .test-env-debian-aarch64 - .build-options-full +x86_64-clang-debian-full-build: + extends: + - .test-env-debian-x86_64 + - .build-with-clang + - .build-options-full + +aarch64-clang-debian-full-build: + extends: + - .test-env-debian-aarch64 + - .build-with-clang + - .build-options-full + # Docs should be invariant on all architectures, so we only do it on Debian # x86-64. docs-build: @@ -328,6 +346,13 @@ armv7-debian-no-gl-build: - .build-no-test - .build-options-no-gl +armv7-clang-debian-no-gl-build: + extends: + - .build-env-debian-armv7 + - .build-with-clang + - .build-no-test + - .build-options-no-gl + aarch64-debian-no-gl-build: extends: - .test-env-debian-aarch64 diff --git a/.gitlab-ci/debian-install.sh b/.gitlab-ci/debian-install.sh index 47e62b56..9bfe6dea 100644 --- a/.gitlab-ci/debian-install.sh +++ b/.gitlab-ci/debian-install.sh @@ -37,6 +37,7 @@ apt-get -y --no-install-recommends install \ autoconf \ automake \ build-essential \ + clang-8 \ curl \ doxygen \ gcovr \ @@ -85,6 +86,8 @@ apt-get -y --no-install-recommends install \ libxcursor-dev \ libxkbcommon-dev \ libxml2-dev \ + lld-8 \ + llvm-8 \ mesa-common-dev \ ninja-build \ pkg-config \