2018-11-24 04:53:30 +03:00
|
|
|
stages:
|
2019-01-16 03:05:25 +03:00
|
|
|
- style
|
2018-11-24 04:53:30 +03:00
|
|
|
- build
|
2018-11-27 17:04:37 +03:00
|
|
|
- test
|
2018-11-24 04:53:30 +03:00
|
|
|
|
2019-01-16 03:05:25 +03:00
|
|
|
style-check:
|
2019-03-19 20:35:09 +03:00
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable:20190215130514
|
2019-01-16 03:05:25 +03:00
|
|
|
stage: style
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
script:
|
2019-05-10 08:20:18 +03:00
|
|
|
- git grep -I -n -P "\t|\r| $" -- . ':(exclude)*/compat/*' && exit 1
|
|
|
|
- git grep -I -n -i "david" -- . ':(exclude)THANKS.md' ':(exclude).gitlab-ci.yml' && exit 1
|
|
|
|
- git grep -I -l -z "" -- . ':(exclude)*/compat/*' | while IFS= read -r -d '' i; do
|
2019-04-19 23:36:10 +03:00
|
|
|
if [ -n "$(tail -c 1 "$i")" ]; then
|
|
|
|
echo "No newline at end of $i";
|
|
|
|
exit 1;
|
|
|
|
fi;
|
|
|
|
done
|
2019-03-19 20:35:09 +03:00
|
|
|
- git remote rm upstream 2> /dev/null || true
|
|
|
|
- git remote add upstream https://code.videolan.org/videolan/dav1d.git
|
|
|
|
- git fetch -q upstream master
|
|
|
|
- for i in $(git rev-list HEAD ^upstream/master); do
|
|
|
|
echo "Checking commit message of $i";
|
|
|
|
msg="$(git log --format=%B -n 1 $i)";
|
|
|
|
if [ -n "$(echo "$msg" | awk "NR==2")" ]; then
|
|
|
|
echo "Malformed commit message in $i, second line must be empty";
|
|
|
|
exit 1;
|
|
|
|
fi;
|
|
|
|
if echo "$msg" | head -1 | grep -q '\.$'; then
|
|
|
|
echo "Malformed commit message in $i, trailing period in subject line";
|
|
|
|
exit 1;
|
|
|
|
fi;
|
|
|
|
done
|
2019-01-16 03:05:25 +03:00
|
|
|
|
2018-11-24 04:53:30 +03:00
|
|
|
build-debian:
|
2019-03-19 20:35:09 +03:00
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable:20190215130514
|
2018-11-24 04:53:30 +03:00
|
|
|
stage: build
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
script:
|
2018-12-02 00:59:40 +03:00
|
|
|
- meson build --buildtype release --werror
|
2018-11-24 04:53:30 +03:00
|
|
|
- ninja -C build
|
|
|
|
- cd build && meson test -v
|
|
|
|
|
|
|
|
build-debian-static:
|
2019-03-19 20:35:09 +03:00
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable:20190215130514
|
2018-11-24 04:53:30 +03:00
|
|
|
stage: build
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
script:
|
2018-12-02 00:59:40 +03:00
|
|
|
- meson build --buildtype release --default-library static --werror
|
2018-11-24 04:53:30 +03:00
|
|
|
- ninja -C build
|
|
|
|
- cd build && meson test -v
|
2019-05-10 08:20:18 +03:00
|
|
|
- nm -A -g src/libdav1d.a | grep " [ABCDGRST] " | (! grep -v " _*dav1d_")
|
2018-11-24 04:53:30 +03:00
|
|
|
|
2019-01-16 03:05:25 +03:00
|
|
|
build-debian32:
|
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable:20181218135732
|
|
|
|
stage: build
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
script:
|
|
|
|
- meson build --buildtype release
|
|
|
|
--werror
|
|
|
|
--cross-file /opt/crossfiles/linux32.meson
|
|
|
|
- ninja -C build
|
|
|
|
- cd build && meson test -v
|
|
|
|
|
2018-11-24 04:53:30 +03:00
|
|
|
build-win32:
|
2019-03-19 20:35:09 +03:00
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable:20190215130514
|
2018-11-24 04:53:30 +03:00
|
|
|
stage: build
|
|
|
|
tags:
|
2019-03-19 20:35:09 +03:00
|
|
|
- debian
|
|
|
|
- amd64
|
2018-11-24 04:53:30 +03:00
|
|
|
script:
|
2019-03-19 20:35:09 +03:00
|
|
|
- wineserver -p && wine wineboot
|
2018-12-02 00:59:40 +03:00
|
|
|
- meson build --buildtype release
|
|
|
|
--werror
|
|
|
|
--libdir lib
|
|
|
|
--prefix "$(pwd)/build/dav1d_install"
|
|
|
|
--cross-file /opt/crossfiles/i686-w64-mingw32.meson
|
|
|
|
-Ddefault_library=both
|
2018-11-24 04:53:30 +03:00
|
|
|
- ninja -C build
|
|
|
|
- ninja -C build install
|
2019-03-19 20:35:09 +03:00
|
|
|
- cd build && meson test -v
|
2019-05-10 08:20:18 +03:00
|
|
|
- i686-w64-mingw32-nm -A -g src/libdav1d.a | grep " [ABCDGRST] " | (! grep -E -v " \.| _*dav1d_")
|
2018-11-24 04:53:30 +03:00
|
|
|
artifacts:
|
|
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
|
|
|
|
paths:
|
|
|
|
- build/dav1d_install/
|
|
|
|
expire_in: 1 week
|
|
|
|
|
2019-03-19 20:35:09 +03:00
|
|
|
build-win32-unaligned-stack:
|
|
|
|
image: registry.videolan.org:5000/vlc-debian-llvm-mingw:20190218133533
|
|
|
|
stage: build
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
script:
|
|
|
|
- wineserver -p && wine wineboot
|
|
|
|
- meson build --buildtype release
|
|
|
|
--werror
|
|
|
|
--cross-file /opt/crossfiles/i686-w64-mingw32.meson
|
|
|
|
-Dstack_alignment=4
|
|
|
|
- ninja -C build
|
|
|
|
- cd build && meson test -v
|
|
|
|
|
2018-11-24 04:53:30 +03:00
|
|
|
build-win64:
|
2019-03-19 20:35:09 +03:00
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable:20190215130514
|
2018-11-24 04:53:30 +03:00
|
|
|
stage: build
|
|
|
|
tags:
|
2019-03-19 20:35:09 +03:00
|
|
|
- debian
|
|
|
|
- amd64
|
2018-11-24 04:53:30 +03:00
|
|
|
script:
|
2019-03-19 20:35:09 +03:00
|
|
|
- wineserver -p && wine wineboot
|
2018-12-02 00:59:40 +03:00
|
|
|
- meson build --buildtype release
|
|
|
|
--werror
|
|
|
|
--libdir lib
|
|
|
|
--prefix "$(pwd)/build/dav1d_install"
|
|
|
|
--cross-file /opt/crossfiles/x86_64-w64-mingw32.meson
|
|
|
|
-Ddefault_library=both
|
2018-11-24 04:53:30 +03:00
|
|
|
- ninja -C build
|
|
|
|
- ninja -C build install
|
2019-03-19 20:35:09 +03:00
|
|
|
- cd build && meson test -v
|
2019-05-10 08:20:18 +03:00
|
|
|
- x86_64-w64-mingw32-nm -A -g src/libdav1d.a | grep " [ABCDGRST] " | (! grep -E -v " \.| _*dav1d_")
|
2019-03-19 20:35:09 +03:00
|
|
|
artifacts:
|
|
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
|
|
|
|
paths:
|
|
|
|
- build/dav1d_install/
|
|
|
|
expire_in: 1 week
|
|
|
|
|
|
|
|
build-win-arm32:
|
|
|
|
image: registry.videolan.org:5000/vlc-debian-llvm-mingw:20190218133533
|
|
|
|
stage: build
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
script:
|
|
|
|
- meson build --buildtype release
|
|
|
|
--werror
|
|
|
|
--libdir lib
|
|
|
|
--prefix "$(pwd)/build/dav1d_install"
|
|
|
|
--cross-file /opt/crossfiles/armv7-w64-mingw32.meson
|
|
|
|
-Ddefault_library=both
|
|
|
|
- ninja -C build
|
2019-05-10 08:20:18 +03:00
|
|
|
- armv7-w64-mingw32-nm -A -g build/src/libdav1d.a | grep " [ABCDGRST] " | (! grep -E -v " \.| _*dav1d_")
|
2019-03-19 20:35:09 +03:00
|
|
|
|
|
|
|
build-win-arm64:
|
|
|
|
image: registry.videolan.org:5000/vlc-debian-llvm-mingw:20190218133533
|
|
|
|
stage: build
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
script:
|
|
|
|
- meson build --buildtype release
|
|
|
|
--werror
|
|
|
|
--libdir lib
|
|
|
|
--prefix "$(pwd)/build/dav1d_install"
|
|
|
|
--cross-file /opt/crossfiles/aarch64-w64-mingw32.meson
|
|
|
|
-Ddefault_library=both
|
|
|
|
- ninja -C build
|
|
|
|
- ninja -C build install
|
2019-05-10 08:20:18 +03:00
|
|
|
- aarch64-w64-mingw32-nm -A -g build/src/libdav1d.a | grep " [ABCDGRST] " | (! grep -E -v " \.| _*dav1d_")
|
2018-11-24 04:53:30 +03:00
|
|
|
artifacts:
|
|
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
|
|
|
|
paths:
|
|
|
|
- build/dav1d_install/
|
|
|
|
expire_in: 1 week
|
|
|
|
|
|
|
|
build-debian-aarch64:
|
|
|
|
stage: build
|
2018-12-02 00:59:40 +03:00
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable-aarch64:20181122182457
|
2018-11-24 04:53:30 +03:00
|
|
|
tags:
|
|
|
|
- aarch64
|
|
|
|
- debian
|
|
|
|
script:
|
2018-12-02 00:59:40 +03:00
|
|
|
- meson build --buildtype release --werror
|
2018-11-24 04:53:30 +03:00
|
|
|
- ninja -C build
|
|
|
|
- cd build && meson test -v
|
|
|
|
|
|
|
|
build-debian-aarch64-clang-5:
|
|
|
|
stage: build
|
2018-12-02 00:59:40 +03:00
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable-aarch64:20181122182457
|
2018-11-24 04:53:30 +03:00
|
|
|
tags:
|
|
|
|
- aarch64
|
|
|
|
- debian
|
|
|
|
script:
|
|
|
|
- env CC=clang-5.0 CFLAGS='-integrated-as' meson build --buildtype release
|
|
|
|
- ninja -C build
|
|
|
|
- cd build && meson test -v
|
|
|
|
|
|
|
|
build-macos:
|
|
|
|
stage: build
|
|
|
|
tags:
|
|
|
|
- macos
|
|
|
|
script:
|
2018-12-02 00:59:40 +03:00
|
|
|
- meson build --buildtype release -Ddefault_library=both --werror
|
2018-11-24 04:53:30 +03:00
|
|
|
- ninja -C build
|
|
|
|
- cd build && meson test -v
|
|
|
|
|
|
|
|
build-debian-werror:
|
2018-12-02 00:59:40 +03:00
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable-aarch64:20181122182457
|
2018-11-24 04:53:30 +03:00
|
|
|
stage: build
|
|
|
|
tags:
|
|
|
|
- aarch64
|
|
|
|
- debian
|
|
|
|
script:
|
2018-12-02 00:59:40 +03:00
|
|
|
- env CC='clang-7' meson build --buildtype debug --werror
|
2018-11-24 04:53:30 +03:00
|
|
|
- ninja -C build
|
2018-11-27 17:04:37 +03:00
|
|
|
|
2019-03-19 20:35:09 +03:00
|
|
|
build-debian-armv7:
|
|
|
|
stage: build
|
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable-armv7:20190202101732
|
|
|
|
tags:
|
|
|
|
- armv7
|
|
|
|
- debian
|
|
|
|
script:
|
|
|
|
- meson build --buildtype release --werror
|
|
|
|
- ninja -C build
|
|
|
|
- cd build && meson test -v
|
|
|
|
|
|
|
|
build-debian-armv7-clang-5:
|
|
|
|
stage: build
|
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable-armv7:20190202101732
|
|
|
|
tags:
|
|
|
|
- armv7
|
|
|
|
- debian
|
|
|
|
script:
|
|
|
|
- env CC=clang-5.0 CFLAGS='-integrated-as' meson build --buildtype release
|
|
|
|
- ninja -C build
|
|
|
|
- cd build && meson test -v
|
|
|
|
|
|
|
|
build-ubuntu-snap:
|
|
|
|
stage: build
|
|
|
|
image: registry.videolan.org:5000/dav1d-ubuntu-bionic:20190221154127
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
script:
|
|
|
|
- snapcraft snap
|
|
|
|
- |
|
|
|
|
if [ "$CI_PROJECT_NAMESPACE" = "videolan" ]; then
|
|
|
|
echo $SNAP_LOGIN | base64 --decode | snapcraft login --with -
|
|
|
|
snapcraft push dav1d_*.snap --release edge
|
|
|
|
snapcraft logout
|
|
|
|
fi
|
|
|
|
artifacts:
|
|
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
|
|
|
|
paths:
|
|
|
|
- dav1d_*.snap
|
|
|
|
expire_in: 1 week
|
|
|
|
allow_failure: true
|
|
|
|
|
2018-11-27 17:04:37 +03:00
|
|
|
test-debian:
|
2019-03-19 20:35:09 +03:00
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable:20190215130514
|
2018-11-27 17:04:37 +03:00
|
|
|
stage: test
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
cache:
|
2019-03-19 20:35:09 +03:00
|
|
|
key: testdata.git-20190215
|
2018-11-27 17:04:37 +03:00
|
|
|
paths:
|
|
|
|
- cache/dav1d-test-data.git/
|
|
|
|
script:
|
|
|
|
- test -d cache || mkdir cache
|
|
|
|
- test -d cache/dav1d-test-data.git && GIT_DIR=cache/dav1d-test-data.git git fetch --refmap=refs/heads/master:refs/heads/master origin master
|
|
|
|
- test -d cache/dav1d-test-data.git || git clone --bare https://code.videolan.org/videolan/dav1d-test-data.git cache/dav1d-test-data.git
|
|
|
|
- git clone cache/dav1d-test-data.git tests/dav1d-test-data
|
2019-03-19 20:35:09 +03:00
|
|
|
- meson build --buildtype release -Dtestdata_tests=true -Dlogging=false
|
2018-11-27 17:04:37 +03:00
|
|
|
- ninja -C build
|
|
|
|
- cd build && time meson test -v
|
2018-12-19 21:11:14 +03:00
|
|
|
dependencies: []
|
2018-12-02 00:59:40 +03:00
|
|
|
|
2019-05-10 08:20:18 +03:00
|
|
|
test-debian-unaligned-stack:
|
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable:20190215130514
|
|
|
|
stage: test
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
cache:
|
|
|
|
key: testdata.git-20190215
|
|
|
|
paths:
|
|
|
|
- cache/dav1d-test-data.git/
|
|
|
|
script:
|
|
|
|
- test -d cache || mkdir cache
|
|
|
|
- test -d cache/dav1d-test-data.git && GIT_DIR=cache/dav1d-test-data.git git fetch --refmap=refs/heads/master:refs/heads/master origin master
|
|
|
|
- test -d cache/dav1d-test-data.git || git clone --bare https://code.videolan.org/videolan/dav1d-test-data.git cache/dav1d-test-data.git
|
|
|
|
- git clone cache/dav1d-test-data.git tests/dav1d-test-data
|
|
|
|
- meson build --buildtype release -Dtestdata_tests=true -Dlogging=false -Dstack_alignment=16
|
|
|
|
- ninja -C build
|
|
|
|
- cd build && time meson test -v
|
|
|
|
dependencies: []
|
|
|
|
|
2018-12-02 00:59:40 +03:00
|
|
|
test-debian-asan:
|
2019-03-19 20:35:09 +03:00
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable:20190215130514
|
2018-12-02 00:59:40 +03:00
|
|
|
stage: test
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
cache:
|
2019-03-19 20:35:09 +03:00
|
|
|
key: testdata.git-20190215
|
2018-12-02 00:59:40 +03:00
|
|
|
paths:
|
|
|
|
- cache/dav1d-test-data.git/
|
|
|
|
variables:
|
|
|
|
ASAN_OPTIONS: 'detect_leaks=0'
|
|
|
|
script:
|
|
|
|
- test -d cache || mkdir cache
|
|
|
|
- test -d cache/dav1d-test-data.git && GIT_DIR=cache/dav1d-test-data.git git fetch --refmap=refs/heads/master:refs/heads/master origin master
|
|
|
|
- test -d cache/dav1d-test-data.git || git clone --bare https://code.videolan.org/videolan/dav1d-test-data.git cache/dav1d-test-data.git
|
|
|
|
- git clone cache/dav1d-test-data.git tests/dav1d-test-data
|
2019-03-19 20:35:09 +03:00
|
|
|
- meson build --buildtype debugoptimized -Dtestdata_tests=true -Dlogging=false -Db_sanitize=address -Dbuild_asm=false
|
2018-12-02 00:59:40 +03:00
|
|
|
- ninja -C build
|
|
|
|
- cd build && time meson test -v --setup=sanitizer
|
2018-12-19 21:11:14 +03:00
|
|
|
dependencies: []
|
2018-12-02 00:59:40 +03:00
|
|
|
|
|
|
|
test-debian-msan:
|
2019-03-19 20:35:09 +03:00
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable:20190215130514
|
2018-12-02 00:59:40 +03:00
|
|
|
stage: test
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
cache:
|
2019-03-19 20:35:09 +03:00
|
|
|
key: testdata.git-20190215
|
2018-12-02 00:59:40 +03:00
|
|
|
paths:
|
|
|
|
- cache/dav1d-test-data.git/
|
|
|
|
variables:
|
|
|
|
MSAN_OPTIONS: 'exitcode=1'
|
|
|
|
script:
|
|
|
|
- test -d cache || mkdir cache
|
|
|
|
- test -d cache/dav1d-test-data.git && GIT_DIR=cache/dav1d-test-data.git git fetch --refmap=refs/heads/master:refs/heads/master origin master
|
|
|
|
- test -d cache/dav1d-test-data.git || git clone --bare https://code.videolan.org/videolan/dav1d-test-data.git cache/dav1d-test-data.git
|
|
|
|
- git clone cache/dav1d-test-data.git tests/dav1d-test-data
|
2019-03-19 20:35:09 +03:00
|
|
|
- env CC=clang meson build --buildtype debugoptimized -Dtestdata_tests=true -Dlogging=false -Db_sanitize=memory -Db_lundef=false -Dbuild_asm=false
|
2018-12-02 00:59:40 +03:00
|
|
|
- ninja -C build
|
|
|
|
- cd build && time meson test -v --setup=sanitizer
|
2018-12-19 21:11:14 +03:00
|
|
|
dependencies: []
|
2018-12-02 00:59:40 +03:00
|
|
|
|
|
|
|
test-debian-ubsan:
|
2019-03-19 20:35:09 +03:00
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable:20190215130514
|
2018-12-02 00:59:40 +03:00
|
|
|
stage: test
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
cache:
|
2019-03-19 20:35:09 +03:00
|
|
|
key: testdata.git-20190215
|
2018-12-02 00:59:40 +03:00
|
|
|
paths:
|
|
|
|
- cache/dav1d-test-data.git/
|
|
|
|
variables:
|
|
|
|
UBSAN_OPTIONS: 'print_stacktrace=1:halt_on_error=1'
|
|
|
|
script:
|
|
|
|
- test -d cache || mkdir cache
|
|
|
|
- test -d cache/dav1d-test-data.git && GIT_DIR=cache/dav1d-test-data.git git fetch --refmap=refs/heads/master:refs/heads/master origin master
|
|
|
|
- test -d cache/dav1d-test-data.git || git clone --bare https://code.videolan.org/videolan/dav1d-test-data.git cache/dav1d-test-data.git
|
|
|
|
- git clone cache/dav1d-test-data.git tests/dav1d-test-data
|
2019-03-19 20:35:09 +03:00
|
|
|
- env CC=clang meson build --buildtype debugoptimized -Dtestdata_tests=true -Dlogging=false -Db_sanitize=undefined -Db_lundef=false -Dbuild_asm=false
|
2018-12-02 00:59:40 +03:00
|
|
|
- ninja -C build
|
|
|
|
- cd build && time meson test -v --setup=sanitizer
|
2018-12-19 21:11:14 +03:00
|
|
|
dependencies: []
|
2019-03-19 20:35:09 +03:00
|
|
|
|
|
|
|
test-win64:
|
|
|
|
image: registry.videolan.org:5000/dav1d-debian-unstable:20190215130514
|
|
|
|
stage: test
|
|
|
|
tags:
|
|
|
|
- debian
|
|
|
|
- amd64
|
|
|
|
cache:
|
|
|
|
key: testdata.git-20190215
|
|
|
|
paths:
|
|
|
|
- cache/dav1d-test-data.git/
|
|
|
|
script:
|
|
|
|
- test -d cache || mkdir cache
|
|
|
|
- test -d cache/dav1d-test-data.git && GIT_DIR=cache/dav1d-test-data.git git fetch --refmap=refs/heads/master:refs/heads/master origin master
|
|
|
|
- test -d cache/dav1d-test-data.git || git clone --bare https://code.videolan.org/videolan/dav1d-test-data.git cache/dav1d-test-data.git
|
|
|
|
- git clone cache/dav1d-test-data.git tests/dav1d-test-data
|
|
|
|
- wineserver -p && wine wineboot
|
|
|
|
- meson build --buildtype release
|
|
|
|
-Dtestdata_tests=true
|
|
|
|
-Dlogging=false
|
|
|
|
--cross-file /opt/crossfiles/x86_64-w64-mingw32.meson
|
|
|
|
- ninja -C build
|
|
|
|
- cd build && time meson test -v
|
|
|
|
dependencies: []
|