# SPDX-License-Identifier: CC0-1.0 # SPDX-FileCopyrightText: 2018-2022 Collabora, Ltd. and the Monado contributors ###################################### # GENERATED - DO NOT EDIT # # see .gitlab-ci/ci.template instead # ###################################### variables: FDO_UPSTREAM_REPO: monado/monado .templates_sha: &templates_sha 34039cd573a2df832d465bc9e4c5f543571f5241 include: # Debian - project: "freedesktop/ci-templates" ref: *templates_sha file: "/templates/debian.yml" # Ubuntu - project: "freedesktop/ci-templates" ref: *templates_sha file: "/templates/ubuntu.yml" # Arch - project: "freedesktop/ci-templates" ref: *templates_sha file: "/templates/arch.yml" # Variables for build and usage of Debian bullseye image .monado.variables.debian:bullseye: variables: FDO_DISTRIBUTION_VERSION: "bullseye" FDO_DISTRIBUTION_TAG: "2022-01-24.0" # Variables for build and usage of Debian bullseye-ndk image .monado.variables.debian:bullseye-ndk: variables: FDO_DISTRIBUTION_VERSION: "bullseye" FDO_DISTRIBUTION_TAG: "2022-01-24.0" FDO_REPO_SUFFIX: ndk # Variables for build and usage of Ubuntu focal image .monado.variables.ubuntu:focal: variables: FDO_DISTRIBUTION_VERSION: "20.04" FDO_DISTRIBUTION_TAG: "2022-01-24.0" # Variables for build and usage of Ubuntu hirsute image .monado.variables.ubuntu:hirsute: variables: FDO_DISTRIBUTION_VERSION: "21.04" FDO_DISTRIBUTION_TAG: "2022-01-24.0" # Variables for build and usage of Ubuntu impish image .monado.variables.ubuntu:impish: variables: FDO_DISTRIBUTION_VERSION: "21.10" FDO_DISTRIBUTION_TAG: "2022-01-24.0" # Variables for build and usage of Arch rolling image .monado.variables.arch:rolling: variables: FDO_DISTRIBUTION_VERSION: "rolling" FDO_DISTRIBUTION_TAG: "2022-01-24.0" stages: - container_prep - build - package - reprepro - pages - deploy ### # Container prep jobs # Make Debian bullseye image debian:bullseye:container_prep: stage: container_prep extends: - .monado.variables.debian:bullseye - .fdo.container-build@debian # from ci-templates variables: FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates clang-format cmake codespell curl debhelper devscripts doxygen dput-ng gettext-base git glslang-tools graphviz libavcodec-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev meson ninja-build pandoc patch pkg-config python3 python3-click python3-pip unzip wget' FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/i386_and_proclamation_container_prep.sh' # Make Debian bullseye-ndk image debian:bullseye-ndk:container_prep: stage: container_prep extends: - .monado.variables.debian:bullseye-ndk - .fdo.container-build@debian # from ci-templates variables: FDO_DISTRIBUTION_PACKAGES: 'ca-certificates cmake git glslang-tools libeigen3-dev meson ninja-build pkg-config python3 unzip wget' FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/ndk_container_prep.sh' # Make Ubuntu focal image ubuntu:focal:container_prep: stage: container_prep extends: - .monado.variables.ubuntu:focal - .fdo.container-build@ubuntu # from ci-templates variables: FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libavcodec-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev meson ninja-build pandoc patch pkg-config python3 unzip wget' # Make Ubuntu hirsute image ubuntu:hirsute:container_prep: stage: container_prep extends: - .monado.variables.ubuntu:hirsute - .fdo.container-build@ubuntu # from ci-templates variables: FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libavcodec-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev meson ninja-build pandoc patch pkg-config python3 unzip wget' # Make Ubuntu impish image ubuntu:impish:container_prep: stage: container_prep extends: - .monado.variables.ubuntu:impish - .fdo.container-build@ubuntu # from ci-templates variables: FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libavcodec-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev meson ninja-build pandoc patch pkg-config python3 reprepro unzip wget' # Make Arch rolling image arch:rolling:container_prep: stage: container_prep extends: - .monado.variables.arch:rolling - .fdo.container-build@arch # from ci-templates variables: FDO_DISTRIBUTION_PACKAGES: 'check clang cmake diffutils doxygen eigen ffmpeg gcc git glfw-x11 glslang graphviz gtk3 hidapi libusb libxrandr mesa meson ninja opencv patch pkgconfig python3 qt5-base v4l-utils vulkan-headers vulkan-icd-loader' ### # Container usage base jobs # Base for using Debian bullseye image .monado.image.debian:bullseye: extends: - .monado.variables.debian:bullseye - .fdo.distribution-image@debian # from ci-templates # Base for using Debian bullseye-ndk image .monado.image.debian:bullseye-ndk: extends: - .monado.variables.debian:bullseye-ndk - .fdo.suffixed-image@debian # from ci-templates # Base for using Ubuntu focal image .monado.image.ubuntu:focal: extends: - .monado.variables.ubuntu:focal - .fdo.distribution-image@ubuntu # from ci-templates # Base for using Ubuntu hirsute image .monado.image.ubuntu:hirsute: extends: - .monado.variables.ubuntu:hirsute - .fdo.distribution-image@ubuntu # from ci-templates # Base for using Ubuntu impish image .monado.image.ubuntu:impish: extends: - .monado.variables.ubuntu:impish - .fdo.distribution-image@ubuntu # from ci-templates # Base for using Arch rolling image .monado.image.arch:rolling: extends: - .monado.variables.arch:rolling - .fdo.distribution-image@arch # from ci-templates # Style check job format-and-spellcheck: extends: - .monado.image.debian:bullseye stage: build script: - scripts/format-and-spellcheck.sh artifacts: paths: - patches/ expire_in: 1 week when: on_failure # Verify REUSE compliance reuse: stage: build image: name: fsfe/reuse:latest entrypoint: [""] script: - reuse lint debian:cmake: stage: build extends: - .monado.image.debian:bullseye before_script: - pushd doc/changes - proclamation build --overwrite vNEXT - popd script: - rm -rf build - cmake -GNinja -B build -S . - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt - ninja -C build - cd build && ctest --output-on-failure artifacts: paths: - build/doc/html/ debian:cmake-no-opencv: stage: build extends: - .monado.image.debian:bullseye script: - rm -rf build - cmake -GNinja -B build -S . -DBUILD_DOC=OFF -DXRT_HAVE_OPENCV=OFF - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt - ninja -C build - cd build && ctest --output-on-failure debian:cmake-no-sdl2: stage: build extends: - .monado.image.debian:bullseye script: - rm -rf build - cmake -GNinja -B build -S . -DBUILD_DOC=OFF -DXRT_HAVE_SDL2=OFF - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt - ninja -C build - cd build && ctest --output-on-failure debian:cmake-no-service: stage: build extends: - .monado.image.debian:bullseye script: - rm -rf build - cmake -GNinja -B build -S . -DBUILD_DOC=OFF -DXRT_FEATURE_SERVICE=OFF - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt - ninja -C build - cd build && ctest --output-on-failure debian:cmake:32bit: stage: build extends: - .monado.image.debian:bullseye script: - rm -rf build - cmake -GNinja -B build -S . -DCMAKE_TOOLCHAIN_FILE=.gitlab-ci/i386.cmake -DXRT_HAVE_OPENCV=OFF - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt - ninja -C build - cd build && ctest --output-on-failure debian:meson: stage: build extends: - .monado.image.debian:bullseye script: - rm -rf build - meson setup build . - ninja -C build debian:meson:32bit: stage: build extends: - .monado.image.debian:bullseye script: - rm -rf build - meson setup build . --prefix=/usr --libdir=/usr/lib/i386-linux-gnu --cross-file=.gitlab-ci/i386-cross.txt - ninja -C build ndk:armeabi-v7a: stage: build extends: - .monado.image.debian:bullseye-ndk script: - rm -rf build - cmake -GNinja -B build -S . -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=26 -DBUILD_DOC=OFF -DCMAKE_TOOLCHAIN_FILE=/opt/android-ndk/build/cmake/android.toolchain.cmake -DEigen3_DIR=/usr/lib/cmake/eigen3/ -DEIGEN3_INCLUDE_DIR=/usr/include/eigen3 - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt - ninja -C build ndk:arm64-v8a: stage: build extends: - .monado.image.debian:bullseye-ndk script: - rm -rf build - cmake -GNinja -B build -S . -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=26 -DBUILD_DOC=OFF -DCMAKE_TOOLCHAIN_FILE=/opt/android-ndk/build/cmake/android.toolchain.cmake -DEigen3_DIR=/usr/lib/cmake/eigen3/ -DEIGEN3_INCLUDE_DIR=/usr/include/eigen3 - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt - ninja -C build android:outOfProcess: stage: build extends: - .monado.image.debian:bullseye-ndk before_script: # For caching gradle stuff - export GRADLE_USER_HOME=`pwd`/.gradlehome variables: GRADLE_ARGS: "-Porg.gradle.daemon=false " cache: paths: - .gradlehome/wrapper - .gradlehome/caches script: - rm -rf build - cp .gitlab-ci/local.properties . - ./gradlew assembleOutOfProcessDebug artifacts: paths: - src/xrt/targets/openxr_android/build/outputs/apk/outOfProcess android:inProcess: stage: build extends: - .monado.image.debian:bullseye-ndk before_script: # For caching gradle stuff - export GRADLE_USER_HOME=`pwd`/.gradlehome variables: GRADLE_ARGS: "-Porg.gradle.daemon=false " cache: paths: - .gradlehome/wrapper - .gradlehome/caches script: - rm -rf build - cp .gitlab-ci/local.properties . - ./gradlew assembleInProcessDebug artifacts: paths: - src/xrt/targets/openxr_android/build/outputs/apk/inProcess/ ubuntu:cmake: stage: build extends: - .monado.image.ubuntu:focal script: - rm -rf build - cmake -GNinja -B build -S . -DBUILD_DOC=OFF - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt - ninja -C build - cd build && ctest --output-on-failure ubuntu:meson: stage: build extends: - .monado.image.ubuntu:focal script: - rm -rf build - meson setup build . - ninja -C build ubuntu:latest:cmake: stage: build extends: - .monado.image.ubuntu:impish script: - rm -rf build - cmake -GNinja -B build -S . -DBUILD_DOC=OFF - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt - ninja -C build - cd build && ctest --output-on-failure arch:cmake: stage: build extends: - .monado.image.arch:rolling script: - rm -rf build - cmake -GNinja -B build -S . - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt - ninja -C build - cd build && ctest --output-on-failure arch:cmake:clang: stage: build extends: - .monado.image.arch:rolling script: - rm -rf build - cmake -GNinja -B build -S . -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt - ninja -C build - cd build && ctest --output-on-failure arch:meson: stage: build extends: - .monado.image.arch:rolling script: - rm -rf build - meson setup build . - ninja -C build # Packaging .monado.packaging.conditions: rules: # Only the default branch of the "upstream" repo. - if: "$CI_PROJECT_PATH == $FDO_UPSTREAM_REPO && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH" when: on_success # Otherwise, don't build packages. - when: never debian:bullseye:package: extends: - .monado.image.debian:bullseye - .monado.packaging.conditions variables: GIT_STRATEGY: clone DEBFULLNAME: "Monado CI" DEBEMAIL: "ryan.pavlik@collabora.com" DISTRO: debian CODENAME: bullseye DEB_VERSION_SUFFIX: bpo11 stage: package before_script: - git config --global user.name Monado CI - git config --global user.email ryan.pavlik@collabora.com script: # Prep the source tree - git clean -dfx # Call this script to build binary and source packages. # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. - .gitlab-ci/build-and-submit-package.sh artifacts: paths: - "incoming/" expire_in: 2 days ubuntu:focal:package: extends: - .monado.image.ubuntu:focal - .monado.packaging.conditions variables: GIT_STRATEGY: clone DEBFULLNAME: "Monado CI" DEBEMAIL: "ryan.pavlik@collabora.com" DISTRO: ubuntu CODENAME: focal DEB_VERSION_SUFFIX: ubuntu2004 stage: package before_script: - git config --global user.name Monado CI - git config --global user.email ryan.pavlik@collabora.com script: # Prep the source tree - git clean -dfx # Call this script to build binary and source packages. # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. - .gitlab-ci/build-and-submit-package.sh artifacts: paths: - "incoming/" expire_in: 2 days ubuntu:hirsute:package: extends: - .monado.image.ubuntu:hirsute - .monado.packaging.conditions variables: GIT_STRATEGY: clone DEBFULLNAME: "Monado CI" DEBEMAIL: "ryan.pavlik@collabora.com" DISTRO: ubuntu CODENAME: hirsute DEB_VERSION_SUFFIX: ubuntu2104 stage: package before_script: - git config --global user.name Monado CI - git config --global user.email ryan.pavlik@collabora.com script: # Prep the source tree - git clean -dfx # Call this script to build binary and source packages. # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. - .gitlab-ci/build-and-submit-package.sh artifacts: paths: - "incoming/" expire_in: 2 days ubuntu:impish:package: extends: - .monado.image.ubuntu:impish - .monado.packaging.conditions variables: GIT_STRATEGY: clone DEBFULLNAME: "Monado CI" DEBEMAIL: "ryan.pavlik@collabora.com" DISTRO: ubuntu CODENAME: impish DEB_VERSION_SUFFIX: ubuntu2110 stage: package before_script: - git config --global user.name Monado CI - git config --global user.email ryan.pavlik@collabora.com script: # Prep the source tree - git clean -dfx # Call this script to build binary and source packages. # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. - .gitlab-ci/build-and-submit-package.sh artifacts: paths: - "incoming/" expire_in: 2 days reprepro:package: stage: reprepro extends: - .monado.image.ubuntu:impish - .monado.packaging.conditions dependencies: - debian:bullseye:package - ubuntu:focal:package - ubuntu:hirsute:package - ubuntu:impish:package script: - bash .gitlab-ci/reprepro.sh artifacts: paths: - "repo/" expire_in: 2 days ### # Pages ### pages: stage: pages only: - main dependencies: - debian:cmake - reprepro:package script: - mkdir -p public - mv build/doc/html/* public/ - mv repo public/apt artifacts: paths: - public