monado/.gitlab-ci/config.yml

263 lines
7.1 KiB
YAML
Raw Normal View History

# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2018-2023 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: 7811ba9814a3bad379377241c6c6b62d78b20eac
# 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:
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:
libbluetooth-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
# Which build job do we use to build the documentation.
documentation_build: "debian:cmake"
# 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: "2023-04-07"
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/
2023-11-14 17:31:18 +00:00
cmake_defines:
BUILD_DOC: "ON"
- name: "debian:cmake-no-opencv"
cmake_defines:
XRT_HAVE_OPENCV: "OFF"
- name: "debian:cmake-no-sdl2"
cmake_defines:
XRT_HAVE_SDL2: "OFF"
- name: "debian:cmake-no-service"
cmake_defines:
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"
# This one is pretty minimal, compared to the others.
# Though, we now install the android SDK in it...
- codename: bullseye-ndk
distro_version: bullseye
repo_suffix: ndk
script: android_container_prep.sh
tag: "2023-04-10.1"
# This must match ext.sharedCompileSdk in build.gradle
android_compile_sdk: 32
# This must match buildscript.ext.buildToolsVersion in build.gradle
android_build_tools: 32.0.0
# look up on https://developer.android.com/studio/index.html#downloads when updating other versions
android_cli_tools: 9477386
packages:
git:
wget:
unzip:
cmake:
meson:
ninja-build:
libeigen3-dev:
python3:
pkg-config:
ca-certificates:
glslang-tools:
default-jdk-headless:
build_jobs:
- name: "ndk:armeabi-v7a"
cmake_defines:
<<: *android_cmake_defines
ANDROID_ABI: armeabi-v7a
- name: "ndk:arm64-v8a"
cmake_defines:
<<: *android_cmake_defines
ANDROID_ABI: arm64-v8a
- name: android:spotlessCheck
target: spotlessCheck
- name: android:outOfProcessDebug
2022-01-25 19:35:31 +00:00
target: assembleOutOfProcessDebug
artifact_path: src/xrt/targets/openxr_android/build/outputs/apk/outOfProcess
- name: android:inProcessDebug
2022-01-25 19:35:31 +00:00
target: assembleInProcessDebug
2022-06-02 16:21:16 +00:00
artifact_path: src/xrt/targets/openxr_android/build/outputs/apk/inProcess
2022-01-25 19:35:31 +00:00
- name: android:outOfProcessRelease
target: assembleOutOfProcessRelease
artifact_path: src/xrt/targets/openxr_android/build/outputs/apk/outOfProcess
- name: android:inProcessRelease
target: assembleInProcessRelease
artifact_path: src/xrt/targets/openxr_android/build/outputs/apk/inProcess
- name: ubuntu
images:
# LTS
- codename: focal
distro_version: "20.04"
tag: "2022-09-20.0"
deb_version_suffix: ubuntu2004
2022-07-25 14:23:53 +00:00
packages:
<<: *default_debian_packages
build_jobs:
- name: "ubuntu:focal:cmake"
cmake_defines:
- codename: jammy
distro_version: "22.04"
tag: "2022-09-20.0"
2022-07-25 14:23:53 +00:00
deb_version_suffix: ubuntu2204
packages:
<<: *default_debian_packages
reprepro:
build_jobs:
2022-07-25 14:23:53 +00:00
- name: "ubuntu:jammy:cmake"
cmake_defines:
- name: arch
images:
- codename: rolling
tag: "2023-05-22.0"
script: install-arch-additional-deps.sh
# pipewire-jack wireplumber: Explicitly choose dependencies to avoid pacman asking interactively
# python-setuptools glu: librealsense
# glew boost gtest fmt bc: basalt-monado-git
# python-attrs: xr-hardware-git
packages:
base-devel:
pipewire-jack:
wireplumber:
bluez-libs:
check:
clang:
cmake:
diffutils:
doxygen:
eigen:
ffmpeg:
gcc:
git:
glfw-x11:
glslang:
graphviz:
gtk3:
hidapi:
libusb:
libxrandr:
mesa:
ninja:
opencv:
patch:
pkgconfig:
python3:
qt6-base:
v4l-utils:
vulkan-headers:
vulkan-icd-loader:
wget:
meson:
python-setuptools:
glu:
glew:
boost:
gtest:
fmt:
bc:
wayland:
libbsd:
python-attrs:
build_jobs:
- name: "arch:cmake"
- name: "arch:cmake:clang"
cmake_defines:
CMAKE_C_COMPILER: /usr/bin/clang
CMAKE_CXX_COMPILER: /usr/bin/clang++
android:
platform: 26
packaging:
# Name and email associated with the package
name: "Monado CI"
email: "ryan.pavlik@collabora.com"