.gitlab-ci.yml 6.4 KB
Newer Older
1 2
stages:
    - build
3
    - test
4 5

build-debian:
6
    image: registry.videolan.org:5000/dav1d-debian-unstable:20181114201132
7 8 9 10 11
    stage: build
    tags:
        - debian
        - amd64
    script:
12
        - meson build --buildtype release --werror
13
        - ninja -C build
Marvin Scholz's avatar
Marvin Scholz committed
14
        - cd build && meson test -v
15

16
build-debian-static:
17
    image: registry.videolan.org:5000/dav1d-debian-unstable:20181114201132
18 19 20 21 22
    stage: build
    tags:
        - debian
        - amd64
    script:
23
        - meson build --buildtype release --default-library static --werror
24 25 26
        - ninja -C build
        - cd build && meson test -v

27
build-win32:
28
    image: registry.videolan.org:5000/dav1d-debian-unstable:20181114201132
29 30 31 32
    stage: build
    tags:
        - win32
    script:
33 34 35 36 37 38
        - meson build --buildtype release
                      --werror
                      --libdir lib
                      --prefix "$(pwd)/build/dav1d_install"
                      --cross-file /opt/crossfiles/i686-w64-mingw32.meson
                      -Ddefault_library=both
39 40
        - ninja -C build
        - ninja -C build install
41 42 43 44 45
    artifacts:
        name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
        paths:
            - build/dav1d_install/
        expire_in: 1 week
46 47

build-win64:
48
    image: registry.videolan.org:5000/dav1d-debian-unstable:20181114201132
49 50 51 52
    stage: build
    tags:
        - win64
    script:
53 54 55 56 57 58
        - meson build --buildtype release
                      --werror
                      --libdir lib
                      --prefix "$(pwd)/build/dav1d_install"
                      --cross-file /opt/crossfiles/x86_64-w64-mingw32.meson
                      -Ddefault_library=both
59 60
        - ninja -C build
        - ninja -C build install
61 62 63 64 65
    artifacts:
        name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
        paths:
            - build/dav1d_install/
        expire_in: 1 week
66 67 68

build-debian-aarch64:
    stage: build
69
    image: registry.videolan.org:5000/dav1d-debian-unstable-aarch64:20181122182457
70 71 72 73
    tags:
        - aarch64
        - debian
    script:
74
        - meson build --buildtype release --werror
75 76 77 78 79
        - ninja -C build
        - cd build && meson test -v

build-debian-aarch64-clang-5:
    stage: build
80
    image: registry.videolan.org:5000/dav1d-debian-unstable-aarch64:20181122182457
81 82 83 84 85 86 87
    tags:
        - aarch64
        - debian
    script:
        - env CC=clang-5.0 CFLAGS='-integrated-as' meson build --buildtype release
        - ninja -C build
        - cd build && meson test -v
88 89 90 91 92 93

build-macos:
    stage: build
    tags:
        - macos
    script:
94
        - meson build --buildtype release -Ddefault_library=both --werror
95 96
        - ninja -C build
        - cd build && meson test -v
97 98

build-debian-werror:
99
    image: registry.videolan.org:5000/dav1d-debian-unstable-aarch64:20181122182457
100 101
    stage: build
    tags:
102
        - aarch64
103 104
        - debian
    script:
105
        - env CC='clang-7' meson build --buildtype debug --werror
106
        - ninja -C build
107 108

test-debian:
109
    image: registry.videolan.org:5000/dav1d-debian-unstable:20181114201132
110 111 112 113
    stage: test
    tags:
        - debian
        - amd64
Janne Grunau's avatar
Janne Grunau committed
114 115 116 117
    cache:
        key: testdata.git
        paths:
            - cache/dav1d-test-data.git/
118
    script:
Janne Grunau's avatar
Janne Grunau committed
119
        - test -d cache || mkdir cache
120
        - 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
Janne Grunau's avatar
Janne Grunau committed
121 122
        - 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
123 124 125
        - meson build --buildtype release -Dtestdata_tests=true
        - ninja -C build
        - cd build && time meson test -v
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145

test-debian-asan:
    image: registry.videolan.org:5000/dav1d-debian-unstable:20181114201132
    stage: test
    tags:
        - debian
        - amd64
    cache:
        key: testdata.git
        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
        - meson build --buildtype debugoptimized -Dtestdata_tests=true -Db_sanitize=address -Dbuild_asm=false
        - ninja -C build
146
        - cd build && time meson test -v --setup=sanitizer
147 148

test-debian-msan:
149
    image: registry.videolan.org:5000/dav1d-debian-unstable:20181114201132
150 151 152
    stage: test
    tags:
        - debian
153
        - amd64
154 155 156 157
    cache:
        key: testdata.git
        paths:
            - cache/dav1d-test-data.git/
158 159
    variables:
        MSAN_OPTIONS: 'exitcode=1'
160 161 162 163 164
    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
165
        - env CC=clang meson build --buildtype debugoptimized -Dtestdata_tests=true -Db_sanitize=memory -Db_lundef=false -Dbuild_asm=false
166
        - ninja -C build
167
        - cd build && time meson test -v --setup=sanitizer
168 169 170 171 172 173 174 175 176 177 178

test-debian-ubsan:
    image: registry.videolan.org:5000/dav1d-debian-unstable:20181114201132
    stage: test
    tags:
        - debian
        - amd64
    cache:
        key: testdata.git
        paths:
            - cache/dav1d-test-data.git/
179 180
    variables:
        UBSAN_OPTIONS: 'print_stacktrace=1:halt_on_error=1'
181 182 183 184 185 186 187
    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
        - env CC=clang meson build --buildtype debugoptimized -Dtestdata_tests=true -Db_sanitize=undefined -Db_lundef=false -Dbuild_asm=false
        - ninja -C build
188
        - cd build && time meson test -v --setup=sanitizer