The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at prediction 805 lines 24 kB view raw
1# SPDX-License-Identifier: CC0-1.0 2# SPDX-FileCopyrightText: 2018-2024 Collabora, Ltd. and the Monado contributors 3 4############################################### 5# GENERATED - DO NOT EDIT 6# see .gitlab-ci/ci.template, etc instead 7############################################### 8 9workflow: 10 rules: 11 # Switch between branch and merge request pipelines to avoid duplication 12 - if: $CI_PIPELINE_SOURCE == "merge_request_event" 13 - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS 14 when: never 15 - if: $CI_COMMIT_BRANCH 16 17variables: 18 FDO_UPSTREAM_REPO: "monado/monado" 19 20include: 21 - project: "freedesktop/ci-templates" 22 ref: 185ede0e9b9b1924b92306ab8b882a6294e92613 23 file: 24 - "/templates/debian.yml" 25 - "/templates/ubuntu.yml" 26 - "/templates/arch.yml" 27 - "/templates/alpine.yml" 28 # - local: .gitlab-ci/containers/ci-container-prep.yml 29 30 # This include is for compatibility with the fdo CI restrictions/checks 31 # needed due to https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/438 32 - local: .gitlab-ci/ci-rules.yml 33 34stages: 35 - container_prep 36 - verify 37 - build 38 - check 39 - package 40 - reprepro 41 - pages 42 - deploy 43 44### 45# Extra rules for packaging 46.monado.packaging.conditions: 47 rules: 48 # Only the default branch of the "upstream" repo on push. 49 - if: $CI_PROJECT_PATH == $FDO_UPSTREAM_REPO && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push" 50 51### 52### 53# Windows container-related jobs (prep and usage) 54 55.monado.common_variables.windows:vs2022: 56 inherit: 57 default: false 58 variables: 59 MONADO_WIN_BASE_TAG: "20250418.0" 60 MONADO_WIN_MAIN_TAG: "20250418.0" 61 MONADO_BASE_IMAGE_PATH: "win2022/vs2022_base" 62 MONADO_MAIN_IMAGE_PATH: "win2022/vs2022" 63 64.monado.variables.windows:vs2022: 65 inherit: 66 default: false 67 extends: 68 - .monado.common_variables.windows:vs2022 69 variables: 70 MONADO_IMAGE_PATH: "$MONADO_MAIN_IMAGE_PATH" 71 FDO_DISTRIBUTION_TAG: "$MONADO_WIN_MAIN_TAG" 72 MONADO_IMAGE: "$CI_REGISTRY_IMAGE/$MONADO_IMAGE_PATH:$FDO_DISTRIBUTION_TAG" 73 MONADO_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$MONADO_IMAGE_PATH:$FDO_DISTRIBUTION_TAG" 74 75# Shared container-building job 76.monado.windows.container_prep: 77 inherit: 78 default: false 79 tags: 80 - windows 81 - "2022" 82 - shell 83 variables: 84 GIT_STRATEGY: fetch 85 extends: 86 - .container-rules 87 88 stage: container_prep 89 script: 90 - | 91 .gitlab-ci\windows\monado_container.ps1 -RegistryUri "$CI_REGISTRY" -RegistryUsername "$CI_REGISTRY_USER" -UserImage "$MONADO_IMAGE" -UpstreamImage "$MONADO_UPSTREAM_IMAGE" -Dockerfile "$DOCKERFILE" -BaseImage "$MONADO_BASE_IMAGE" -BaseUpstreamImage "$MONADO_UPSTREAM_BASE_IMAGE" -Verbose 92 93# This container just installs Visual C++ Build Tools. 94win:container_prep:base: 95 extends: 96 - .monado.windows.container_prep 97 - .monado.common_variables.windows:vs2022 98 variables: 99 DOCKERFILE: Dockerfile.vs2022 100 MONADO_IMAGE_PATH: ${MONADO_BASE_IMAGE_PATH} 101 FDO_DISTRIBUTION_TAG: "$MONADO_WIN_BASE_TAG" 102 MONADO_IMAGE: "$CI_REGISTRY_IMAGE/$MONADO_IMAGE_PATH:$FDO_DISTRIBUTION_TAG" 103 MONADO_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$MONADO_IMAGE_PATH:$FDO_DISTRIBUTION_TAG" 104 105# This container adds other deps 106win:container_prep: 107 extends: 108 - .monado.windows.container_prep 109 - .monado.variables.windows:vs2022 110 needs: 111 - win:container_prep:base 112 variables: 113 DOCKERFILE: Dockerfile.build 114 MONADO_BASE_IMAGE: "$CI_REGISTRY_IMAGE/$MONADO_BASE_IMAGE_PATH:$MONADO_WIN_BASE_TAG" 115 MONADO_UPSTREAM_BASE_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$MONADO_BASE_IMAGE_PATH:$MONADO_WIN_BASE_TAG" 116 117# Base job to use a Windows build container 118.monado.image.windows: 119 tags: 120 - windows 121 - "2022" 122 - docker 123 extends: 124 - .monado.variables.windows:vs2022 125 - .build-rules 126 image: $MONADO_IMAGE 127 128 129 130# Variables for build and usage of Debian bookworm image 131.monado.variables.debian:bookworm: 132 variables: 133 FDO_DISTRIBUTION_VERSION: "bookworm" 134 FDO_DISTRIBUTION_TAG: "2025-10-01" 135 136# Variables for build and usage of Debian bullseye image 137.monado.variables.debian:bullseye: 138 variables: 139 FDO_DISTRIBUTION_VERSION: "bullseye" 140 FDO_DISTRIBUTION_TAG: "2025-01-08" 141 142# Variables for build and usage of Debian bookworm-ndk image 143.monado.variables.debian:bookworm-ndk: 144 variables: 145 FDO_DISTRIBUTION_VERSION: "bookworm" 146 FDO_DISTRIBUTION_TAG: "2025-05-24" 147 FDO_REPO_SUFFIX: ndk 148 149# Variables for build and usage of Ubuntu jammy image 150.monado.variables.ubuntu:jammy: 151 variables: 152 FDO_DISTRIBUTION_VERSION: "22.04" 153 FDO_DISTRIBUTION_TAG: "2025-01-11" 154 155# Variables for build and usage of Ubuntu noble image 156.monado.variables.ubuntu:noble: 157 variables: 158 FDO_DISTRIBUTION_VERSION: "24.04" 159 FDO_DISTRIBUTION_TAG: "2025-01-11" 160 161# Variables for build and usage of Arch image 162.monado.variables.arch: 163 variables: 164 FDO_DISTRIBUTION_TAG: "2025-04-18" 165 166# Variables for build and usage of Alpine image 167.monado.variables.alpine: 168 variables: 169 FDO_DISTRIBUTION_TAG: "2025-04-18" 170 171 172### 173# Container prep jobs 174# Make Debian bookworm image 175debian:bookworm:container_prep: 176 stage: container_prep 177 extends: 178 - .container-rules 179 - .monado.variables.debian:bookworm 180 - .fdo.container-build@debian # from ci-templates 181 182 variables: 183 FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates clang-format clang-tidy cmake codespell curl debhelper devscripts doxygen dput-ng gettext-base git glslang-tools graphviz libbluetooth-dev libbsd-dev libcjson-dev libdbus-1-dev libdistro-info-perl 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 ninja-build pahole pandoc patch pipx pkg-config python3 python3-click python3-pip reprepro unzip wayland-protocols wget' 184 FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/i386_and_proclamation_container_prep.sh' 185 186# Make Debian bullseye image 187debian:bullseye:container_prep: 188 stage: container_prep 189 extends: 190 - .container-rules 191 - .monado.variables.debian:bullseye 192 - .fdo.container-build@debian # from ci-templates 193 194 variables: 195 FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libbluetooth-dev libbsd-dev libcjson-dev libdbus-1-dev libdistro-info-perl 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 ninja-build pandoc patch pkg-config python3 unzip wayland-protocols wget' 196 FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/bullseye_backports.sh' 197 198# Make Debian bookworm-ndk image 199debian:bookworm-ndk:container_prep: 200 stage: container_prep 201 extends: 202 - .container-rules 203 - .monado.variables.debian:bookworm-ndk 204 - .fdo.container-build@debian # from ci-templates 205 206 variables: 207 FDO_DISTRIBUTION_PACKAGES: 'ca-certificates cmake default-jdk-headless git glslang-tools libeigen3-dev meson ninja-build pkg-config python3 unzip wget' 208 FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/android_container_prep.sh' 209 210# Make Ubuntu jammy image 211ubuntu:jammy:container_prep: 212 stage: container_prep 213 extends: 214 - .container-rules 215 - .monado.variables.ubuntu:jammy 216 - .fdo.container-build@ubuntu # from ci-templates 217 218 variables: 219 FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libbluetooth-dev libbsd-dev libcjson-dev libdbus-1-dev libdistro-info-perl 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 ninja-build pandoc patch pkg-config python3 unzip wayland-protocols wget' 220 221# Make Ubuntu noble image 222ubuntu:noble:container_prep: 223 stage: container_prep 224 extends: 225 - .container-rules 226 - .monado.variables.ubuntu:noble 227 - .fdo.container-build@ubuntu # from ci-templates 228 229 variables: 230 FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libbluetooth-dev libbsd-dev libcjson-dev libdbus-1-dev libdistro-info-perl 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 ninja-build pandoc patch pkg-config python3 unzip wayland-protocols wget' 231 232# Make Arch image 233arch:container_prep: 234 stage: container_prep 235 extends: 236 - .container-rules 237 - .monado.variables.arch 238 - .fdo.container-build@arch # from ci-templates 239 240 variables: 241 FDO_DISTRIBUTION_PACKAGES: 'base-devel bc bluez-libs boost check clang cmake diffutils doxygen eigen fmt gcc git glew glfw-x11 glslang glu graphviz gtest gtk3 hidapi libbsd libusb libxrandr mesa meson ninja opencv patch pipewire-jack pkgconfig python-attrs python-setuptools python3 qt6-base v4l-utils vulkan-headers vulkan-icd-loader wayland wget wireplumber' 242 FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/install-arch-additional-deps.sh' 243 244# Make Alpine image 245alpine:container_prep: 246 stage: container_prep 247 extends: 248 - .container-rules 249 - .monado.variables.alpine 250 - .fdo.container-build@alpine # from ci-templates 251 252 variables: 253 FDO_DISTRIBUTION_PACKAGES: 'build-base cmake cmd:glslangValidator cmd:wayland-scanner doxygen eigen-dev eudev-dev graphviz libjpeg-turbo-dev libsurvive-dev libxrandr-dev mesa-dev opencv-dev openhmd-dev samurai sdl2-dev v4l-utils-dev vulkan-loader-dev wayland-dev wayland-protocols zlib-dev' 254 255 256### 257# Container usage base jobs 258 259# Base for using Debian bookworm image 260.monado.image.debian:bookworm: 261 extends: 262 - .monado.variables.debian:bookworm 263 - .fdo.distribution-image@debian # from ci-templates 264 - .build-rules 265 266 267# Base for using Debian bullseye image 268.monado.image.debian:bullseye: 269 extends: 270 - .monado.variables.debian:bullseye 271 - .fdo.distribution-image@debian # from ci-templates 272 - .build-rules 273 274 275# Base for using Debian bookworm-ndk image 276.monado.image.debian:bookworm-ndk: 277 extends: 278 - .monado.variables.debian:bookworm-ndk 279 - .fdo.suffixed-image@debian # from ci-templates 280 - .build-rules 281 282 283# Base for using Ubuntu jammy image 284.monado.image.ubuntu:jammy: 285 extends: 286 - .monado.variables.ubuntu:jammy 287 - .fdo.distribution-image@ubuntu # from ci-templates 288 - .build-rules 289 290 291# Base for using Ubuntu noble image 292.monado.image.ubuntu:noble: 293 extends: 294 - .monado.variables.ubuntu:noble 295 - .fdo.distribution-image@ubuntu # from ci-templates 296 - .build-rules 297 298 299# Base for using Arch image 300.monado.image.arch: 301 extends: 302 - .monado.variables.arch 303 - .fdo.distribution-image@arch # from ci-templates 304 - .build-rules 305 306 307# Base for using Alpine image 308.monado.image.alpine: 309 extends: 310 - .monado.variables.alpine 311 - .fdo.distribution-image@alpine # from ci-templates 312 - .build-rules 313 314 315 316# Style check job 317format-and-spellcheck: 318 extends: 319 - .monado.image.debian:bookworm 320 321 stage: verify 322 script: 323 - scripts/format-and-spellcheck.sh 324 artifacts: 325 paths: 326 - patches/ 327 expire_in: 1 week 328 when: on_failure 329 330# Verify REUSE compliance 331reuse: 332 extends: 333 - .build-rules 334 stage: verify 335 image: 336 name: fsfe/reuse:latest 337 entrypoint: [""] 338 script: 339 - reuse lint 340 341 342debian:cmake: 343 stage: build 344 extends: 345 - .monado.packaging.conditions 346 - .monado.image.debian:bookworm 347 348 before_script: 349 - pushd doc/changes 350 - proclamation build vNEXT 351 - popd 352 353 script: 354 355 - .gitlab-ci/prebuild.sh 356 - .gitlab-ci/ci-cmake-build.sh -DBUILD_DOC=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON 357 - cd build && ctest --output-on-failure 358 artifacts: 359 untracked: true 360 paths: 361 - build/doc/html/ 362 363debian:cmake-no-opencv: 364 stage: build 365 extends: 366 - .monado.image.debian:bookworm 367 368 script: 369 370 - .gitlab-ci/prebuild.sh 371 - .gitlab-ci/ci-cmake-build.sh -DCMAKE_BUILD_TYPE=Debug -DXRT_HAVE_OPENCV=OFF 372 - src/xrt/ipc/shared/proto.py src/xrt/ipc/shared/proto.json structs.txt 373 - mkdir -p "debian:cmake-no-opencv" 374 - pahole --sizes --class_name file://structs.txt build/src/xrt/targets/openxr/libopenxr_monado.so > "debian:cmake-no-opencv/ipc-sizes.txt" 375 - cd build && ctest --output-on-failure 376 artifacts: 377 paths: 378 - debian:cmake-no-opencv/ipc-sizes.txt 379 380debian:cmake-no-sdl2: 381 stage: build 382 extends: 383 - .monado.image.debian:bookworm 384 385 script: 386 387 - .gitlab-ci/prebuild.sh 388 - .gitlab-ci/ci-cmake-build.sh -DXRT_HAVE_SDL2=OFF 389 - cd build && ctest --output-on-failure 390 391debian:cmake-no-service: 392 stage: build 393 extends: 394 - .monado.image.debian:bookworm 395 396 script: 397 398 - .gitlab-ci/prebuild.sh 399 - .gitlab-ci/ci-cmake-build.sh -DXRT_FEATURE_SERVICE=OFF 400 - cd build && ctest --output-on-failure 401 402debian:cmake:32bit: 403 stage: build 404 extends: 405 - .monado.image.debian:bookworm 406 407 script: 408 409 - .gitlab-ci/prebuild.sh 410 - .gitlab-ci/ci-cmake-build.sh -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=.gitlab-ci/i386.cmake -DXRT_HAVE_OPENCV=OFF 411 - src/xrt/ipc/shared/proto.py src/xrt/ipc/shared/proto.json structs.txt 412 - mkdir -p "debian:cmake:32bit" 413 - pahole --sizes --class_name file://structs.txt build/src/xrt/targets/openxr/libopenxr_monado.so > "debian:cmake:32bit/ipc-sizes.txt" 414 - cd build && ctest --output-on-failure 415 artifacts: 416 paths: 417 - debian:cmake:32bit/ipc-sizes.txt 418 419debian:bullseye:cmake: 420 stage: build 421 extends: 422 - .monado.image.debian:bullseye 423 424 script: 425 426 - .gitlab-ci/prebuild.sh 427 - .gitlab-ci/ci-cmake-build.sh 428 - cd build && ctest --output-on-failure 429 430ndk:armeabi-v7a: 431 stage: build 432 extends: 433 - .monado.image.debian:bookworm-ndk 434 435 script: 436 437 - .gitlab-ci/prebuild.sh 438 - .gitlab-ci/ci-cmake-build.sh -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=26 -DCMAKE_TOOLCHAIN_FILE=/opt/android-ndk/build/cmake/android.toolchain.cmake -DEigen3_DIR=/usr/share/eigen3/cmake/ 439 440ndk:arm64-v8a: 441 stage: build 442 extends: 443 - .monado.image.debian:bookworm-ndk 444 445 script: 446 447 - .gitlab-ci/prebuild.sh 448 - .gitlab-ci/ci-cmake-build.sh -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=26 -DCMAKE_TOOLCHAIN_FILE=/opt/android-ndk/build/cmake/android.toolchain.cmake -DEigen3_DIR=/usr/share/eigen3/cmake/ 449 450android:spotlessCheck: 451 stage: build 452 extends: 453 - .monado.image.debian:bookworm-ndk 454 455 before_script: 456 # For caching gradle stuff 457 - export GRADLE_USER_HOME=`pwd`/.gradlehome 458 459 variables: 460 GRADLE_ARGS: "-Porg.gradle.daemon=false " 461 cache: 462 paths: 463 - .gradlehome/wrapper 464 - .gradlehome/caches 465 466 script: 467 468 - .gitlab-ci/prebuild.sh 469 - .gitlab-ci/ci-gradle-build.sh spotlessCheck 470 471android:outOfProcessDebug: 472 stage: build 473 extends: 474 - .monado.image.debian:bookworm-ndk 475 476 before_script: 477 # For caching gradle stuff 478 - export GRADLE_USER_HOME=`pwd`/.gradlehome 479 480 variables: 481 GRADLE_ARGS: "-Porg.gradle.daemon=false " 482 cache: 483 paths: 484 - .gradlehome/wrapper 485 - .gradlehome/caches 486 487 script: 488 489 - .gitlab-ci/prebuild.sh 490 - .gitlab-ci/ci-gradle-build.sh assembleOutOfProcessDebug 491 artifacts: 492 paths: 493 - src/xrt/targets/openxr_android/build/outputs/apk/outOfProcess 494 495android:inProcessDebug: 496 stage: build 497 extends: 498 - .monado.image.debian:bookworm-ndk 499 500 before_script: 501 # For caching gradle stuff 502 - export GRADLE_USER_HOME=`pwd`/.gradlehome 503 504 variables: 505 GRADLE_ARGS: "-Porg.gradle.daemon=false " 506 cache: 507 paths: 508 - .gradlehome/wrapper 509 - .gradlehome/caches 510 511 script: 512 513 - .gitlab-ci/prebuild.sh 514 - .gitlab-ci/ci-gradle-build.sh assembleInProcessDebug 515 artifacts: 516 paths: 517 - src/xrt/targets/openxr_android/build/outputs/apk/inProcess 518 519android:outOfProcessRelease: 520 stage: build 521 extends: 522 - .monado.image.debian:bookworm-ndk 523 - .monado.packaging.conditions 524 525 before_script: 526 # For caching gradle stuff 527 - export GRADLE_USER_HOME=`pwd`/.gradlehome 528 529 variables: 530 GRADLE_ARGS: "-Porg.gradle.daemon=false " 531 cache: 532 paths: 533 - .gradlehome/wrapper 534 - .gradlehome/caches 535 536 script: 537 538 - .gitlab-ci/prebuild.sh 539 - base64 --decode ${MONADO_ANDROID_KEYSTORE} > monado-release.jks 540 - .gitlab-ci/ci-gradle-build.sh assembleOutOfProcessRelease 541 artifacts: 542 paths: 543 - src/xrt/targets/openxr_android/build/outputs/apk/outOfProcess 544 545android:inProcessRelease: 546 stage: build 547 extends: 548 - .monado.image.debian:bookworm-ndk 549 - .monado.packaging.conditions 550 551 before_script: 552 # For caching gradle stuff 553 - export GRADLE_USER_HOME=`pwd`/.gradlehome 554 555 variables: 556 GRADLE_ARGS: "-Porg.gradle.daemon=false " 557 cache: 558 paths: 559 - .gradlehome/wrapper 560 - .gradlehome/caches 561 562 script: 563 564 - .gitlab-ci/prebuild.sh 565 - base64 --decode ${MONADO_ANDROID_KEYSTORE} > monado-release.jks 566 - .gitlab-ci/ci-gradle-build.sh assembleInProcessRelease 567 artifacts: 568 paths: 569 - src/xrt/targets/openxr_android/build/outputs/apk/inProcess 570 571ubuntu:jammy:cmake: 572 stage: build 573 extends: 574 - .monado.image.ubuntu:jammy 575 576 script: 577 578 - .gitlab-ci/prebuild.sh 579 - .gitlab-ci/ci-cmake-build.sh 580 - cd build && ctest --output-on-failure 581 582ubuntu:noble:cmake: 583 stage: build 584 extends: 585 - .monado.image.ubuntu:noble 586 587 script: 588 589 - .gitlab-ci/prebuild.sh 590 - .gitlab-ci/ci-cmake-build.sh 591 - cd build && ctest --output-on-failure 592 593arch:cmake: 594 stage: build 595 extends: 596 - .monado.image.arch 597 598 script: 599 600 - .gitlab-ci/prebuild.sh 601 - .gitlab-ci/ci-cmake-build.sh 602 - cd build && ctest --output-on-failure 603 604arch:cmake:clang: 605 stage: build 606 extends: 607 - .monado.image.arch 608 609 script: 610 611 - .gitlab-ci/prebuild.sh 612 - .gitlab-ci/ci-cmake-build.sh -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ 613 - cd build && ctest --output-on-failure 614 615alpine:cmake: 616 stage: build 617 extends: 618 - .monado.image.alpine 619 620 script: 621 622 - .gitlab-ci/prebuild.sh 623 - .gitlab-ci/ci-cmake-build.sh 624 - cd build && ctest --output-on-failure 625 626# Windows build 627windows: 628 stage: build 629 extends: 630 - .monado.image.windows 631 script: 632 - ./.gitlab-ci/windows/monado_build.ps1 -Install -RunTests 633 artifacts: 634 when: always 635 paths: 636 - install 637 - build/Testing/Temporary 638 639 640# Check compatibility of IPC protocol between 32 and 64 bits 641ipc-32-64-compatibility: 642 stage: check 643 dependencies: ["debian:cmake-no-opencv", "debian:cmake:32bit"] 644 needs: ["debian:cmake-no-opencv", "debian:cmake:32bit"] 645 script: 646 - diff -du "debian:cmake-no-opencv/ipc-sizes.txt" "debian:cmake:32bit/ipc-sizes.txt" 647 - cmp "debian:cmake-no-opencv/ipc-sizes.txt" "debian:cmake:32bit/ipc-sizes.txt" 648 649clang-tidy: 650 extends: 651 - .build-rules 652 - .monado.image.debian:bookworm 653 stage: check 654 dependencies: 655 - debian:cmake 656 needs: 657 - debian:cmake 658 script: 659 - file $(which run-clang-tidy) 660 - run-clang-tidy -quiet -p build 661 662 663debian:bookworm:package: 664 extends: 665 - .monado.image.debian:bookworm 666 - .monado.packaging.conditions 667 variables: 668 GIT_STRATEGY: clone 669 DEBFULLNAME: "Monado CI" 670 DEBEMAIL: "rylie.pavlik@collabora.com" 671 DISTRO: debian 672 CODENAME: bookworm 673 DEB_VERSION_SUFFIX: bpo12 674 stage: package 675 before_script: 676 - git config --global user.name Monado CI 677 - git config --global user.email rylie.pavlik@collabora.com 678 script: 679 - .gitlab-ci/prebuild.sh 680 # Prep the source tree 681 - git clean -dfx 682 # Call this script to build binary and source packages. 683 # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. 684 - .gitlab-ci/build-and-submit-package.sh 685 artifacts: 686 paths: 687 - "incoming/" 688 expire_in: 2 days 689 690debian:bullseye:package: 691 extends: 692 - .monado.image.debian:bullseye 693 - .monado.packaging.conditions 694 variables: 695 GIT_STRATEGY: clone 696 DEBFULLNAME: "Monado CI" 697 DEBEMAIL: "rylie.pavlik@collabora.com" 698 DISTRO: debian 699 CODENAME: bullseye 700 DEB_VERSION_SUFFIX: bpo11 701 stage: package 702 before_script: 703 - git config --global user.name Monado CI 704 - git config --global user.email rylie.pavlik@collabora.com 705 script: 706 - .gitlab-ci/prebuild.sh 707 # Prep the source tree 708 - git clean -dfx 709 # Call this script to build binary and source packages. 710 # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. 711 - .gitlab-ci/build-and-submit-package.sh 712 artifacts: 713 paths: 714 - "incoming/" 715 expire_in: 2 days 716 717ubuntu:jammy:package: 718 extends: 719 - .monado.image.ubuntu:jammy 720 - .monado.packaging.conditions 721 variables: 722 GIT_STRATEGY: clone 723 DEBFULLNAME: "Monado CI" 724 DEBEMAIL: "rylie.pavlik@collabora.com" 725 DISTRO: ubuntu 726 CODENAME: jammy 727 DEB_VERSION_SUFFIX: ubuntu2204 728 stage: package 729 before_script: 730 - git config --global user.name Monado CI 731 - git config --global user.email rylie.pavlik@collabora.com 732 script: 733 - .gitlab-ci/prebuild.sh 734 # Prep the source tree 735 - git clean -dfx 736 # Call this script to build binary and source packages. 737 # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. 738 - .gitlab-ci/build-and-submit-package.sh 739 artifacts: 740 paths: 741 - "incoming/" 742 expire_in: 2 days 743 744ubuntu:noble:package: 745 extends: 746 - .monado.image.ubuntu:noble 747 - .monado.packaging.conditions 748 variables: 749 GIT_STRATEGY: clone 750 DEBFULLNAME: "Monado CI" 751 DEBEMAIL: "rylie.pavlik@collabora.com" 752 DISTRO: ubuntu 753 CODENAME: noble 754 DEB_VERSION_SUFFIX: ubuntu2404 755 stage: package 756 before_script: 757 - git config --global user.name Monado CI 758 - git config --global user.email rylie.pavlik@collabora.com 759 script: 760 - .gitlab-ci/prebuild.sh 761 # Prep the source tree 762 - git clean -dfx 763 # Call this script to build binary and source packages. 764 # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. 765 - .gitlab-ci/build-and-submit-package.sh 766 artifacts: 767 paths: 768 - "incoming/" 769 expire_in: 2 days 770 771reprepro:package: 772 stage: reprepro 773 extends: 774 - .monado.image.debian:bookworm 775 776 - .monado.packaging.conditions 777 needs: 778 - debian:bookworm:package 779 - debian:bullseye:package 780 - ubuntu:jammy:package 781 - ubuntu:noble:package 782 script: 783 - bash .gitlab-ci/reprepro.sh 784 artifacts: 785 paths: 786 - "repo/" 787 expire_in: 2 days 788 789### 790# Pages 791### 792pages: 793 stage: pages 794 extends: 795 - .monado.packaging.conditions 796 needs: 797 - debian:cmake 798 - reprepro:package 799 script: 800 - mkdir -p public 801 - mv build/doc/html/* public/ 802 - mv repo public/apt 803 artifacts: 804 paths: 805 - public