526b13585c
Meson writes testlog.junit.xml alongside testlog.txt on every test run. Point GitLab at it so reviewers see per-test pass/fail directly in the MR's "Tests" tab instead of fishing through job logs. The text log is still uploaded as a fallback.
103 lines
2.7 KiB
YAML
103 lines
2.7 KiB
YAML
stages:
|
|
- build
|
|
- analyze
|
|
- test
|
|
|
|
.ubuntu-amd64-bionic:
|
|
image: registry.videolan.org/librist-ubuntu-bionic:20200501213126
|
|
stage: build
|
|
tags:
|
|
- docker
|
|
- amd64
|
|
|
|
.ubuntu-amd64-jammy:
|
|
image: registry.videolan.org/libplacebo-ubuntu-jammy:20230730213642
|
|
stage: build
|
|
tags:
|
|
- docker
|
|
- amd64
|
|
|
|
.debian-amd64-common:
|
|
image: registry.videolan.org/dav1d-debian-unstable:20200306210534
|
|
stage: build
|
|
tags:
|
|
- docker
|
|
- amd64
|
|
|
|
build-ubuntu:
|
|
extends: .ubuntu-amd64-bionic
|
|
tags:
|
|
- docker
|
|
- avx2
|
|
- amd64
|
|
script:
|
|
- meson build --buildtype release --werror
|
|
- ninja -C build
|
|
|
|
build-win64:
|
|
extends: .debian-amd64-common
|
|
script:
|
|
- meson build --buildtype release
|
|
--werror
|
|
--libdir lib
|
|
--cross-file common/ci/x86_64-w64-mingw32.meson
|
|
-Ddefault_library=both
|
|
-Dhave_mingw_pthreads=true
|
|
- ninja -C build
|
|
artifacts:
|
|
paths:
|
|
- build
|
|
expire_in: 24 hours
|
|
|
|
analyze-ubuntu:
|
|
stage: analyze
|
|
extends:
|
|
- .ubuntu-amd64-bionic
|
|
needs: ["build-ubuntu"]
|
|
script:
|
|
- meson build --buildtype release --werror -Dstatic_analyze=true
|
|
- ninja -C build analyze
|
|
dependencies: []
|
|
|
|
test-ubuntu:
|
|
stage: test
|
|
extends:
|
|
- .ubuntu-amd64-jammy
|
|
needs: ["build-ubuntu"]
|
|
script:
|
|
- meson build --buildtype release -Db_sanitize=address,undefined
|
|
- cd build && meson test --print-errorlogs
|
|
dependencies:
|
|
- build-ubuntu
|
|
artifacts:
|
|
when: always
|
|
reports:
|
|
junit: build/meson-logs/testlog.junit.xml
|
|
paths:
|
|
- build/meson-logs/testlog.txt
|
|
- build/meson-logs/testlog.junit.xml
|
|
|
|
# Run the cross-compiled Windows binaries (with mbedTLS, matching the
|
|
# release configuration) under wine so the same meson test suite that
|
|
# gates Linux also gates Windows. Catches Windows-runtime regressions
|
|
# like #208 (winsock not initialised before rist_logging_set) and the
|
|
# SRP/AES code paths under #210 that pure cross-compile cannot detect.
|
|
# Does not catch real-Windows kernel behaviours that wine does not
|
|
# replicate (e.g. the #209 WSAECONNRESET-from-ICMP-unreach interaction);
|
|
# a native Windows runner would be needed for that and is not available
|
|
# in VideoLAN's shared CI.
|
|
test-win64:
|
|
stage: test
|
|
extends: .debian-amd64-common
|
|
needs: ["build-win64"]
|
|
dependencies:
|
|
- build-win64
|
|
script:
|
|
- wineserver -p && wine wineboot
|
|
- cd build && meson test --print-errorlogs --no-rebuild
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- build/meson-logs/testlog.txt
|
|
|