Skip to content
Snippets Groups Projects
.gitlab-ci.yml 5.12 KiB
Newer Older
stages:
Niklas Haas's avatar
Niklas Haas committed
    - compile
    - test
Niklas Haas's avatar
Niklas Haas committed
    - sanitize
variables:
    GIT_SUBMODULE_STRATEGY: recursive
    IMAGE_UBUNTU_JAMMY: registry.videolan.org/libplacebo-ubuntu-jammy:20230730213642
    IMAGE_UBUNTU_JAMMY_AARCH: registry.videolan.org/libplacebo-ubuntu-jammy-aarch64:20230203024122
Niklas Haas's avatar
Niklas Haas committed
linux:
    image: $IMAGE_UBUNTU_JAMMY
Niklas Haas's avatar
Niklas Haas committed
    stage: compile
    tags:
        - amd64
    script:
        - meson build --buildtype release
                      --werror
                      -Dtests=true
                      -Dshaderc=enabled
                      -Dglslang=enabled
        - ninja -C build

Niklas Haas's avatar
Niklas Haas committed
static:
    image: $IMAGE_UBUNTU_JAMMY
Niklas Haas's avatar
Niklas Haas committed
    stage: compile
    tags:
        - amd64
    script:
        - meson build --buildtype release
                      --default-library static
                      --werror
                      -Dshaderc=enabled
                      -Dglslang=enabled
        - ninja -C build

Niklas Haas's avatar
Niklas Haas committed
win32:
    image: $IMAGE_UBUNTU_JAMMY
Niklas Haas's avatar
Niklas Haas committed
    stage: compile
    tags:
    script:
        - meson build --buildtype release
                      --werror
                      -Dtests=true
                      -Dd3d11=enabled
                      --cross-file /opt/crossfiles/i686-w64-mingw32.meson
        - ninja -C build
        - cd build && meson test -t 5 -v --num-processes=1
Niklas Haas's avatar
Niklas Haas committed
win64:
    image: $IMAGE_UBUNTU_JAMMY
Niklas Haas's avatar
Niklas Haas committed
    stage: compile
    tags:
    script:
        - meson build --buildtype release
                      --werror
                      -Dtests=true
                      -Dd3d11=enabled
                      --cross-file /opt/crossfiles/x86_64-w64-mingw32.meson
        - ninja -C build
        - cd build && meson test -t 5 -v --num-processes=1
Niklas Haas's avatar
Niklas Haas committed
aarch64:
    image: $IMAGE_UBUNTU_JAMMY_AARCH
Niklas Haas's avatar
Niklas Haas committed
    stage: compile
    tags:
        - aarch64
    script:
        - meson build --buildtype release --werror -Dtests=true
        - ninja -C build
        - cd build && meson test -t 5 -v --num-processes=1
Niklas Haas's avatar
Niklas Haas committed
macos:
    stage: compile
    tags:
    script:
        - meson build --buildtype release
                      -Ddefault_library=both
                      -Dtests=true
                      -Dc_args='-mmacosx-version-min=10.11 -Wunguarded-availability'
                      --werror
        - ninja -C build
        - cd build && meson test -t 5 -v --num-processes=1
Niklas Haas's avatar
Niklas Haas committed
scan:
    image: $IMAGE_UBUNTU_JAMMY
Niklas Haas's avatar
Niklas Haas committed
    stage: compile
    tags:
        - amd64
        - env CC=clang CXX=clang++ CC_LD=lld CXX_LD=lld
            meson build --buildtype debugoptimized
                        --werror
                        -Dtests=true
                        -Dbench=true
                        -Dshaderc=enabled
                        -Dglslang=enabled
        - ninja -C build scan-build

Niklas Haas's avatar
Niklas Haas committed
llvmpipe:
Niklas Haas's avatar
Niklas Haas committed
    image: $IMAGE_UBUNTU_JAMMY
Niklas Haas's avatar
Niklas Haas committed
    stage: test
    tags:
        - docker
        - amd64
    script:
        - meson build --buildtype release
                      --werror
                      -Dtests=true
                      -Dc_args='-DCI_ALLOW_SW -DCI_MAXGL'
Niklas Haas's avatar
Niklas Haas committed
                      -Dshaderc=enabled
                      -Dglslang=enabled
        - ninja -C build
        - cd build && meson test -t 20 -v --num-processes=1
    image: $IMAGE_UBUNTU_JAMMY
    stage: test
    tags:
        - gpu
    script:
        - meson build --buildtype release
                      --werror
                      -Dtests=true
                      -Ddebug-abort=true
                      -Dshaderc=enabled
                      -Dglslang=enabled
                      -Db_coverage=true
        - ninja -C build
        - vulkaninfo
        - cd build && meson test -t 5 -v --num-processes=1
        - ninja coverage-html
        - mv meson-logs/coveragereport ../coverage
        - ninja coverage-xml
        - grep -Eo 'line-rate="[^"]+"' meson-logs/coverage.xml | head -n 1 |
          grep -Eo '[0-9.]+' | awk '{ print "coverage:", $1 * 100 } '
Niklas Haas's avatar
Niklas Haas committed
    coverage: '/^coverage: (\d+.\d+)$/'
Niklas Haas's avatar
Niklas Haas committed
        expose_as: 'Coverage HTML report'
Niklas Haas's avatar
Niklas Haas committed
            - coverage/
        reports:
            coverage_report:
              coverage_format: cobertura
              path: build/meson-logs/coverage.xml
    image: $IMAGE_UBUNTU_JAMMY
Niklas Haas's avatar
Niklas Haas committed
    stage: sanitize
    variables:
        UBSAN_OPTIONS: 'print_stacktrace=1:halt_on_error=1'
    script:
        - env CC=clang CXX=clang++ CC_LD=lld CXX_LD=lld
            meson build --buildtype debugoptimized
                        -Dtests=true
                        -Dc_args='-DCI_MAXGL -Wno-deprecated-declarations'
                        -Db_sanitize=address,undefined
                        -Db_lundef=false
                        -Dshaderc=enabled
        - ninja -C build
        - cd build && time meson test -t 5 -v --num-processes=1