From cc8dbb4f2f06aed451d34fe4df2f6036313b493d Mon Sep 17 00:00:00 2001 From: Ryan Pavlik Date: Mon, 27 Apr 2020 17:49:46 -0500 Subject: [PATCH] ci: Re-organize and port to the new fdo templates. --- .gitlab-ci.yml | 134 ++++++++++++++++++---------- .gitlab-ci/arch:container_prep.sh | 6 ++ .gitlab-ci/debian:container_prep.sh | 6 ++ 3 files changed, 100 insertions(+), 46 deletions(-) create mode 100644 .gitlab-ci/arch:container_prep.sh create mode 100644 .gitlab-ci/debian:container_prep.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 03f72039d..371792657 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,21 +2,36 @@ # SPDX-FileCopyrightText: 2018-2020 Collabora, Ltd. and the Monado contributors variables: - UPSTREAM_REPO: monado/monado + FDO_UPSTREAM_REPO: monado/monado - DEBIAN_TAG: 2019-03-23.0 + DEBIAN_TAG: 2019-04-27.0 DEBIAN_VERSION: buster DEBIAN_CONTAINER_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG" + NDK_TAG: 2020-04-27.0 + NDK_CONTAINER_IMAGE: "$CI_REGISTRY_IMAGE/debian/ndk:$NDK_TAG" ARCH_TAG: 2019-12-03.0 ARCH_CONTAINER_IMAGE: "$CI_REGISTRY_IMAGE/archlinux/rolling:$ARCH_TAG" +.templates_sha: &templates_sha 322bf2b8f29b6491caeb13861201e96969ddc169 + +# Variables for build and usage of Debian 10 (Buster) image +.monado.debian:buster: + variables: + FDO_DISTRIBUTION_VERSION: buster + FDO_DISTRIBUTION_TAG: "2019-04-28.0" + +# Variables for build and usage of Arch Linux image +.monado.arch:rolling: + variables: + FDO_DISTRIBUTION_TAG: "2019-04-28.0" + include: - - project: "wayland/ci-templates" - ref: 0a9bdd33a98f05af6761ab118b5074952242aab0 + - project: "freedesktop/ci-templates" + ref: *templates_sha file: "/templates/debian.yml" - - project: "wayland/ci-templates" - ref: 0a9bdd33a98f05af6761ab118b5074952242aab0 + - project: "freedesktop/ci-templates" + ref: *templates_sha file: "/templates/arch.yml" stages: @@ -25,27 +40,45 @@ stages: - pages - deploy -debian:container_prep: - extends: .debian@container-ifnot-exists - stage: container_prep - variables: - GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image - # a list of packages to install - DEBIAN_DEBS: "build-essential git cmake meson ninja-build doxygen graphviz libeigen3-dev curl patch python3 pkg-config libx11-dev libxxf86vm-dev libxrandr-dev libxcb-randr0-dev libhidapi-dev libwayland-dev libvulkan-dev glslang-dev glslang-tools libglvnd-dev libgl1-mesa-dev ca-certificates libusb-1.0-0-dev libuvc-dev libavcodec-dev libopencv-dev libudev-dev clang-format-7 codespell libv4l-dev libegl1-mesa-dev python3-click python3-pip" - DEBIAN_EXEC: "bash .gitlab-ci/build-openxr-openhmd.sh" +### +# Container prep jobs -arch:container_prep: - extends: .arch@container-ifnot-exists - stage: container_prep +# Base for all container prep +.monado.container_base: + # "stage" set here doesn't work, for some reason + variables: + # no need to pull the whole tree for rebuilding the image - is this still needed? + GIT_STRATEGY: none + # Each most-derived job has a script to set up stuff for it. + FDO_DISTRIBUTION_EXEC: "bash .gitlab-ci/${CI_JOB_NAME}.sh" + +# Debian Buster (x64) +debian:container_prep: + stage: container_prep + extends: + - .monado.debian:buster # local + - .monado.container_base # local + - .fdo.container-build@debian # from ci-templates variables: - GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image # a list of packages to install - ARCH_PKGS: "git gcc cmake meson ninja pkgconfig python3 diffutils patch doxygen graphviz eigen hidapi libxrandr mesa glslang vulkan-headers vulkan-icd-loader check glfw-x11 libusb opencv gtk3 ffmpeg v4l-utils qt5-base" - ARCH_EXEC: "bash .gitlab-ci/build-openxr-openhmd.sh" + FDO_DISTRIBUTION_PACKAGES: "build-essential git wget unzip cmake meson ninja-build doxygen graphviz libeigen3-dev curl patch python3 pkg-config libx11-dev libxxf86vm-dev libxrandr-dev libxcb-randr0-dev libhidapi-dev libwayland-dev libvulkan-dev glslang-dev glslang-tools libglvnd-dev libgl1-mesa-dev ca-certificates libusb-1.0-0-dev libuvc-dev libavcodec-dev libopencv-dev libudev-dev clang-format-7 codespell libv4l-dev libegl1-mesa-dev python3-pip python3-click" + +# Arch Linux (x64) +arch:container_prep: + stage: container_prep + extends: + - .monado.arch:rolling # local + - .monado.container_base # local + - .fdo.container-build@arch # from ci-templates + variables: + # a list of packages to install + FDO_DISTRIBUTION_PACKAGES: "git gcc cmake meson ninja pkgconfig python3 diffutils patch doxygen graphviz eigen hidapi libxrandr mesa glslang vulkan-headers vulkan-icd-loader check glfw-x11 libusb opencv gtk3 ffmpeg v4l-utils qt5-base" format-and-spellcheck: + extends: + - .monado.debian:buster # local + - .fdo.distribution-image@debian # from ci-templates stage: build - image: $DEBIAN_CONTAINER_IMAGE script: - scripts/format-and-spellcheck.sh artifacts: @@ -54,50 +87,59 @@ format-and-spellcheck: expire_in: 1 week when: on_failure -debian:build-cmake: +# "Base" job for a CMake build +.monado.build-cmake: stage: build - image: $DEBIAN_CONTAINER_IMAGE script: - mkdir build - pushd build - - cmake -GNinja .. + - cmake -GNinja .. $CMAKE_ARGS - ninja -arch:build-cmake: +# "Base" job for a Meson build +.monado.build-meson: stage: build - image: $ARCH_CONTAINER_IMAGE script: - mkdir build - pushd build - - cmake -GNinja .. + - meson .. $MESON_ARGS - ninja -debian:build-meson: - stage: build - image: $DEBIAN_CONTAINER_IMAGE - script: - # Generate "changes since last release" +debian:cmake: + extends: + - .monado.debian:buster # local + - .fdo.distribution-image@debian # from ci-templates + - .monado.build-cmake # local + before_script: + # Generate "changes since last release" and add to changelog, + # since this is the build that makes our docs. - pip3 install proclamation - pushd doc/changes - proclamation build --overwrite vNEXT - popd - # Now proceed with build. - - mkdir build - - pushd build - - meson .. - - ninja artifacts: paths: - build/doc/html/ -arch:build-meson: - stage: build - image: $ARCH_CONTAINER_IMAGE - script: - - mkdir build - - pushd build - - meson -Ddocs=disabled .. - - ninja +arch:cmake: + extends: + - .monado.arch:rolling # local + - .fdo.distribution-image@arch # from ci-templates + - .monado.build-cmake # local + +debian:meson: + extends: + - .monado.debian:buster # local + - .fdo.distribution-image@debian # from ci-templates + - .monado.build-meson # local + +arch:meson: + extends: + - .monado.arch:rolling # local + - .fdo.distribution-image@arch # from ci-templates + - .monado.build-meson # local + variables: + MESON_ARGS: -Ddocs=disabled ### # Pages @@ -107,7 +149,7 @@ pages: only: - master dependencies: - - debian:build-meson + - debian:cmake script: - mkdir -p public - mv build/doc/html/* public/ diff --git a/.gitlab-ci/arch:container_prep.sh b/.gitlab-ci/arch:container_prep.sh new file mode 100644 index 000000000..bcf1e51b2 --- /dev/null +++ b/.gitlab-ci/arch:container_prep.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +( + cd $(dirname $0) + bash ./build-openxr-openhmd.sh +) diff --git a/.gitlab-ci/debian:container_prep.sh b/.gitlab-ci/debian:container_prep.sh new file mode 100644 index 000000000..7cacc72dc --- /dev/null +++ b/.gitlab-ci/debian:container_prep.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +( + cd $(dirname $0) + bash ./build-openxr-openhmd.sh +)