The open source OpenXR runtime
0
fork

Configure Feed

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

at main 803 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: "20251127.3" 60 MONADO_WIN_MAIN_TAG: "20251127.3" 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 - mkdir -p "debian:cmake-no-opencv" 373 - pahole --sizes --class_name file://build/ipc-structs.txt build/src/xrt/targets/openxr/libopenxr_monado.so > "debian:cmake-no-opencv/ipc-sizes.txt" 374 - cd build && ctest --output-on-failure 375 artifacts: 376 paths: 377 - debian:cmake-no-opencv/ipc-sizes.txt 378 379debian:cmake-no-sdl2: 380 stage: build 381 extends: 382 - .monado.image.debian:bookworm 383 384 script: 385 386 - .gitlab-ci/prebuild.sh 387 - .gitlab-ci/ci-cmake-build.sh -DXRT_HAVE_SDL2=OFF 388 - cd build && ctest --output-on-failure 389 390debian:cmake-no-service: 391 stage: build 392 extends: 393 - .monado.image.debian:bookworm 394 395 script: 396 397 - .gitlab-ci/prebuild.sh 398 - .gitlab-ci/ci-cmake-build.sh -DXRT_FEATURE_SERVICE=OFF 399 - cd build && ctest --output-on-failure 400 401debian:cmake:32bit: 402 stage: build 403 extends: 404 - .monado.image.debian:bookworm 405 406 script: 407 408 - .gitlab-ci/prebuild.sh 409 - .gitlab-ci/ci-cmake-build.sh -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=.gitlab-ci/i386.cmake -DXRT_HAVE_OPENCV=OFF 410 - mkdir -p "debian:cmake:32bit" 411 - pahole --sizes --class_name file://build/ipc-structs.txt build/src/xrt/targets/openxr/libopenxr_monado.so > "debian:cmake:32bit/ipc-sizes.txt" 412 - cd build && ctest --output-on-failure 413 artifacts: 414 paths: 415 - debian:cmake:32bit/ipc-sizes.txt 416 417debian:bullseye:cmake: 418 stage: build 419 extends: 420 - .monado.image.debian:bullseye 421 422 script: 423 424 - .gitlab-ci/prebuild.sh 425 - .gitlab-ci/ci-cmake-build.sh 426 - cd build && ctest --output-on-failure 427 428ndk:armeabi-v7a: 429 stage: build 430 extends: 431 - .monado.image.debian:bookworm-ndk 432 433 script: 434 435 - .gitlab-ci/prebuild.sh 436 - .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/ 437 438ndk:arm64-v8a: 439 stage: build 440 extends: 441 - .monado.image.debian:bookworm-ndk 442 443 script: 444 445 - .gitlab-ci/prebuild.sh 446 - .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/ 447 448android:spotlessCheck: 449 stage: build 450 extends: 451 - .monado.image.debian:bookworm-ndk 452 453 before_script: 454 # For caching gradle stuff 455 - export GRADLE_USER_HOME=`pwd`/.gradlehome 456 457 variables: 458 GRADLE_ARGS: "-Porg.gradle.daemon=false " 459 cache: 460 paths: 461 - .gradlehome/wrapper 462 - .gradlehome/caches 463 464 script: 465 466 - .gitlab-ci/prebuild.sh 467 - .gitlab-ci/ci-gradle-build.sh spotlessCheck 468 469android:outOfProcessDebug: 470 stage: build 471 extends: 472 - .monado.image.debian:bookworm-ndk 473 474 before_script: 475 # For caching gradle stuff 476 - export GRADLE_USER_HOME=`pwd`/.gradlehome 477 478 variables: 479 GRADLE_ARGS: "-Porg.gradle.daemon=false " 480 cache: 481 paths: 482 - .gradlehome/wrapper 483 - .gradlehome/caches 484 485 script: 486 487 - .gitlab-ci/prebuild.sh 488 - .gitlab-ci/ci-gradle-build.sh assembleOutOfProcessDebug 489 artifacts: 490 paths: 491 - src/xrt/targets/openxr_android/build/outputs/apk/outOfProcess 492 493android:inProcessDebug: 494 stage: build 495 extends: 496 - .monado.image.debian:bookworm-ndk 497 498 before_script: 499 # For caching gradle stuff 500 - export GRADLE_USER_HOME=`pwd`/.gradlehome 501 502 variables: 503 GRADLE_ARGS: "-Porg.gradle.daemon=false " 504 cache: 505 paths: 506 - .gradlehome/wrapper 507 - .gradlehome/caches 508 509 script: 510 511 - .gitlab-ci/prebuild.sh 512 - .gitlab-ci/ci-gradle-build.sh assembleInProcessDebug 513 artifacts: 514 paths: 515 - src/xrt/targets/openxr_android/build/outputs/apk/inProcess 516 517android:outOfProcessRelease: 518 stage: build 519 extends: 520 - .monado.image.debian:bookworm-ndk 521 - .monado.packaging.conditions 522 523 before_script: 524 # For caching gradle stuff 525 - export GRADLE_USER_HOME=`pwd`/.gradlehome 526 527 variables: 528 GRADLE_ARGS: "-Porg.gradle.daemon=false " 529 cache: 530 paths: 531 - .gradlehome/wrapper 532 - .gradlehome/caches 533 534 script: 535 536 - .gitlab-ci/prebuild.sh 537 - base64 --decode ${MONADO_ANDROID_KEYSTORE} > monado-release.jks 538 - .gitlab-ci/ci-gradle-build.sh assembleOutOfProcessRelease 539 artifacts: 540 paths: 541 - src/xrt/targets/openxr_android/build/outputs/apk/outOfProcess 542 543android:inProcessRelease: 544 stage: build 545 extends: 546 - .monado.image.debian:bookworm-ndk 547 - .monado.packaging.conditions 548 549 before_script: 550 # For caching gradle stuff 551 - export GRADLE_USER_HOME=`pwd`/.gradlehome 552 553 variables: 554 GRADLE_ARGS: "-Porg.gradle.daemon=false " 555 cache: 556 paths: 557 - .gradlehome/wrapper 558 - .gradlehome/caches 559 560 script: 561 562 - .gitlab-ci/prebuild.sh 563 - base64 --decode ${MONADO_ANDROID_KEYSTORE} > monado-release.jks 564 - .gitlab-ci/ci-gradle-build.sh assembleInProcessRelease 565 artifacts: 566 paths: 567 - src/xrt/targets/openxr_android/build/outputs/apk/inProcess 568 569ubuntu:jammy:cmake: 570 stage: build 571 extends: 572 - .monado.image.ubuntu:jammy 573 574 script: 575 576 - .gitlab-ci/prebuild.sh 577 - .gitlab-ci/ci-cmake-build.sh 578 - cd build && ctest --output-on-failure 579 580ubuntu:noble:cmake: 581 stage: build 582 extends: 583 - .monado.image.ubuntu:noble 584 585 script: 586 587 - .gitlab-ci/prebuild.sh 588 - .gitlab-ci/ci-cmake-build.sh 589 - cd build && ctest --output-on-failure 590 591arch:cmake: 592 stage: build 593 extends: 594 - .monado.image.arch 595 596 script: 597 598 - .gitlab-ci/prebuild.sh 599 - .gitlab-ci/ci-cmake-build.sh 600 - cd build && ctest --output-on-failure 601 602arch:cmake:clang: 603 stage: build 604 extends: 605 - .monado.image.arch 606 607 script: 608 609 - .gitlab-ci/prebuild.sh 610 - .gitlab-ci/ci-cmake-build.sh -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ 611 - cd build && ctest --output-on-failure 612 613alpine:cmake: 614 stage: build 615 extends: 616 - .monado.image.alpine 617 618 script: 619 620 - .gitlab-ci/prebuild.sh 621 - .gitlab-ci/ci-cmake-build.sh 622 - cd build && ctest --output-on-failure 623 624# Windows build 625windows: 626 stage: build 627 extends: 628 - .monado.image.windows 629 script: 630 - ./.gitlab-ci/windows/monado_build.ps1 -Install -RunTests 631 artifacts: 632 when: always 633 paths: 634 - install 635 - build/Testing/Temporary 636 637 638# Check compatibility of IPC protocol between 32 and 64 bits 639ipc-32-64-compatibility: 640 stage: check 641 dependencies: ["debian:cmake-no-opencv", "debian:cmake:32bit"] 642 needs: ["debian:cmake-no-opencv", "debian:cmake:32bit"] 643 script: 644 - diff -du "debian:cmake-no-opencv/ipc-sizes.txt" "debian:cmake:32bit/ipc-sizes.txt" 645 - cmp "debian:cmake-no-opencv/ipc-sizes.txt" "debian:cmake:32bit/ipc-sizes.txt" 646 647clang-tidy: 648 extends: 649 - .build-rules 650 - .monado.image.debian:bookworm 651 stage: check 652 dependencies: 653 - debian:cmake 654 needs: 655 - debian:cmake 656 script: 657 - file $(which run-clang-tidy) 658 - run-clang-tidy -quiet -p build 659 660 661debian:bookworm:package: 662 extends: 663 - .monado.image.debian:bookworm 664 - .monado.packaging.conditions 665 variables: 666 GIT_STRATEGY: clone 667 DEBFULLNAME: "Monado CI" 668 DEBEMAIL: "rylie.pavlik@collabora.com" 669 DISTRO: debian 670 CODENAME: bookworm 671 DEB_VERSION_SUFFIX: bpo12 672 stage: package 673 before_script: 674 - git config --global user.name Monado CI 675 - git config --global user.email rylie.pavlik@collabora.com 676 script: 677 - .gitlab-ci/prebuild.sh 678 # Prep the source tree 679 - git clean -dfx 680 # Call this script to build binary and source packages. 681 # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. 682 - .gitlab-ci/build-and-submit-package.sh 683 artifacts: 684 paths: 685 - "incoming/" 686 expire_in: 2 days 687 688debian:bullseye:package: 689 extends: 690 - .monado.image.debian:bullseye 691 - .monado.packaging.conditions 692 variables: 693 GIT_STRATEGY: clone 694 DEBFULLNAME: "Monado CI" 695 DEBEMAIL: "rylie.pavlik@collabora.com" 696 DISTRO: debian 697 CODENAME: bullseye 698 DEB_VERSION_SUFFIX: bpo11 699 stage: package 700 before_script: 701 - git config --global user.name Monado CI 702 - git config --global user.email rylie.pavlik@collabora.com 703 script: 704 - .gitlab-ci/prebuild.sh 705 # Prep the source tree 706 - git clean -dfx 707 # Call this script to build binary and source packages. 708 # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. 709 - .gitlab-ci/build-and-submit-package.sh 710 artifacts: 711 paths: 712 - "incoming/" 713 expire_in: 2 days 714 715ubuntu:jammy:package: 716 extends: 717 - .monado.image.ubuntu:jammy 718 - .monado.packaging.conditions 719 variables: 720 GIT_STRATEGY: clone 721 DEBFULLNAME: "Monado CI" 722 DEBEMAIL: "rylie.pavlik@collabora.com" 723 DISTRO: ubuntu 724 CODENAME: jammy 725 DEB_VERSION_SUFFIX: ubuntu2204 726 stage: package 727 before_script: 728 - git config --global user.name Monado CI 729 - git config --global user.email rylie.pavlik@collabora.com 730 script: 731 - .gitlab-ci/prebuild.sh 732 # Prep the source tree 733 - git clean -dfx 734 # Call this script to build binary and source packages. 735 # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. 736 - .gitlab-ci/build-and-submit-package.sh 737 artifacts: 738 paths: 739 - "incoming/" 740 expire_in: 2 days 741 742ubuntu:noble:package: 743 extends: 744 - .monado.image.ubuntu:noble 745 - .monado.packaging.conditions 746 variables: 747 GIT_STRATEGY: clone 748 DEBFULLNAME: "Monado CI" 749 DEBEMAIL: "rylie.pavlik@collabora.com" 750 DISTRO: ubuntu 751 CODENAME: noble 752 DEB_VERSION_SUFFIX: ubuntu2404 753 stage: package 754 before_script: 755 - git config --global user.name Monado CI 756 - git config --global user.email rylie.pavlik@collabora.com 757 script: 758 - .gitlab-ci/prebuild.sh 759 # Prep the source tree 760 - git clean -dfx 761 # Call this script to build binary and source packages. 762 # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. 763 - .gitlab-ci/build-and-submit-package.sh 764 artifacts: 765 paths: 766 - "incoming/" 767 expire_in: 2 days 768 769reprepro:package: 770 stage: reprepro 771 extends: 772 - .monado.image.debian:bookworm 773 774 - .monado.packaging.conditions 775 needs: 776 - debian:bookworm:package 777 - debian:bullseye:package 778 - ubuntu:jammy:package 779 - ubuntu:noble:package 780 script: 781 - bash .gitlab-ci/reprepro.sh 782 artifacts: 783 paths: 784 - "repo/" 785 expire_in: 2 days 786 787### 788# Pages 789### 790pages: 791 stage: pages 792 extends: 793 - .monado.packaging.conditions 794 needs: 795 - debian:cmake 796 - reprepro:package 797 script: 798 - mkdir -p public 799 - mv build/doc/html/* public/ 800 - mv repo public/apt 801 artifacts: 802 paths: 803 - public