monado/.gitlab-ci/config.yml

236 lines
5.8 KiB
YAML
Raw Normal View History

# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2018-2022 Collabora, Ltd. and the Monado contributors
# Please run the following from the repo root after modifying this file:
# make -f .gitlab-ci/ci-scripts.mk
fdo_ci_templates_sha: 34039cd573a2df832d465bc9e4c5f543571f5241
# These are a mapping, instead of a list/array, so we can merge.
.default_debian_packages:
&default_debian_packages # Packages required for build and some other basic jobs
build-essential:
git:
wget:
unzip:
cmake:
meson:
ninja-build:
libeigen3-dev:
curl:
patch:
python3:
pkg-config:
libx11-dev:
libx11-xcb-dev:
libxxf86vm-dev:
libxrandr-dev:
libxcb-randr0-dev:
libvulkan-dev:
glslang-tools:
libglvnd-dev:
libgl1-mesa-dev:
ca-certificates:
libusb-1.0-0-dev:
libudev-dev:
# These are optional packages, that we're building against to ensure we build as much code as possible
libhidapi-dev:
libwayland-dev:
libuvc-dev:
libavcodec-dev:
libopencv-dev:
libv4l-dev:
libcjson-dev:
libsdl2-dev:
libegl1-mesa-dev:
libdbus-1-dev:
libgstreamer1.0-dev:
libgstreamer-plugins-base1.0-dev:
libsystemd-dev:
libbsd-dev:
# Only used for building packages
devscripts:
debhelper:
dput-ng:
gettext-base:
pandoc:
# These config defines are used for all NDK builds
.android_cmake_defines: &android_cmake_defines
ANDROID_PLATFORM: 26
CMAKE_TOOLCHAIN_FILE: /opt/android-ndk/build/cmake/android.toolchain.cmake
Eigen3_DIR: /usr/lib/cmake/eigen3/
EIGEN3_INCLUDE_DIR: /usr/include/eigen3
# The distributions we'll make an image for
distributions:
- name: debian
images:
# This image does some extra work.
- codename: bullseye
script: i386_and_proclamation_container_prep.sh
tag: "2022-01-24.0"
deb_version_suffix: bpo11
packages:
<<: *default_debian_packages
codespell:
doxygen:
graphviz:
python3-pip:
python3-click:
clang-format:
build_jobs:
- name: "debian:cmake"
# Generate "changes since last release" and add to changelog,
# since this is the build that makes our docs.
before_script:
- pushd doc/changes
- proclamation build --overwrite vNEXT
- popd
artifact_path: build/doc/html/
- name: "debian:cmake-no-opencv"
cmake_defines:
BUILD_DOC: "OFF"
XRT_HAVE_OPENCV: "OFF"
- name: "debian:cmake-no-sdl2"
cmake_defines:
BUILD_DOC: "OFF"
XRT_HAVE_SDL2: "OFF"
- name: "debian:cmake-no-service"
cmake_defines:
BUILD_DOC: "OFF"
XRT_FEATURE_SERVICE: "OFF"
- name: "debian:cmake:32bit"
cmake_defines:
CMAKE_TOOLCHAIN_FILE: .gitlab-ci/i386.cmake
# OpenCV doesn't play nicely with us in multi-arch.
XRT_HAVE_OPENCV: "OFF"
- name: "debian:meson"
- name: "debian:meson:32bit"
args:
- --prefix=/usr
- --libdir=/usr/lib/i386-linux-gnu
- --cross-file=.gitlab-ci/i386-cross.txt
# This one is pretty minimal, compared to the others.
- codename: bullseye-ndk
distro_version: bullseye
repo_suffix: ndk
script: ndk_container_prep.sh
tag: "2022-01-24.0"
packages:
git:
wget:
unzip:
cmake:
meson:
ninja-build:
libeigen3-dev:
python3:
pkg-config:
ca-certificates:
glslang-tools:
build_jobs:
- name: "ndk:armeabi-v7a"
cmake_defines:
<<: *android_cmake_defines
BUILD_DOC: "OFF"
ANDROID_ABI: armeabi-v7a
- name: "ndk:arm64-v8a"
cmake_defines:
<<: *android_cmake_defines
BUILD_DOC: "OFF"
ANDROID_ABI: arm64-v8a
- name: ubuntu
images:
# LTS
- codename: focal
distro_version: "20.04"
tag: "2022-01-24.0"
deb_version_suffix: ubuntu2004
packages:
<<: *default_debian_packages
build_jobs:
- name: "ubuntu:cmake"
cmake_defines:
BUILD_DOC: "OFF"
- name: "ubuntu:meson"
- codename: hirsute
distro_version: "21.04"
tag: "2022-01-24.0"
deb_version_suffix: ubuntu2104
packages:
<<: *default_debian_packages
- codename: impish
distro_version: "21.10"
tag: "2022-01-24.0"
deb_version_suffix: ubuntu2110
packages:
<<: *default_debian_packages
reprepro:
build_jobs:
- name: "ubuntu:latest:cmake"
cmake_defines:
BUILD_DOC: "OFF"
- name: arch
images:
- codename: rolling
tag: "2022-01-24.0"
packages:
git:
gcc:
clang:
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:
build_jobs:
- name: "arch:cmake"
- name: "arch:cmake:clang"
cmake_defines:
CMAKE_C_COMPILER: /usr/bin/clang
CMAKE_CXX_COMPILER: /usr/bin/clang++
- name: "arch:meson"
android:
platform: 26
packaging:
# Name and email associated with the package
name: "Monado CI"
email: "ryan.pavlik@collabora.com"