1.test: 2 # The image was generated with the following Dockerfile. It is also used 3 # for libxslt, that's why we need git and libgcrypt-dev. 4 # 5 # FROM ubuntu:20.04 6 # ENV DEBIAN_FRONTEND=noninteractive 7 # RUN apt-get update && \ 8 # apt-get upgrade -y && \ 9 # apt-get install -y --no-install-recommends \ 10 # curl git ca-certificates \ 11 # autoconf automake libtool pkg-config \ 12 # make gcc clang llvm \ 13 # zlib1g-dev liblzma-dev libgcrypt-dev \ 14 # python-dev python3-dev \ 15 # cmake 16 # WORKDIR /tests 17 # RUN curl https://www.w3.org/XML/Test/xmlts20080827.tar.gz |tar xz 18 image: registry.gitlab.gnome.org/gnome/libxml2 19 script: 20 - | 21 ln -s /tests/xmlconf 22 sh autogen.sh $CONFIG 23 make -j$(nproc) V=1 CFLAGS="$CFLAGS -Werror" 24 make check 25 26gcc: 27 extends: .test 28 variables: 29 CFLAGS: "-O2 -std=c89 -D_XOPEN_SOURCE=700" 30 31gcc:python3: 32 extends: .test 33 only: 34 - schedules 35 variables: 36 CONFIG: "--with-python=/usr/bin/python3" 37 CFLAGS: "-O2" 38 39clang:asan: 40 extends: .test 41 variables: 42 CONFIG: "--without-python" 43 CC: clang 44 CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined,integer -fno-sanitize-recover=all -Wno-error=cast-align" 45 # LeakSanitizer requires SYS_CAP_PTRACE 46 ASAN_OPTIONS: "detect_leaks=0" 47 UBSAN_OPTIONS: "print_stacktrace=1" 48 49clang:msan: 50 extends: .test 51 only: 52 - schedules 53 variables: 54 CONFIG: "--without-python --without-zlib --without-lzma" 55 CC: clang 56 CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=memory -Wno-error=cast-align" 57 58.cmake:linux: 59 image: registry.gitlab.gnome.org/gnome/libxml2 60 script: 61 - cmake -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS -DCMAKE_INSTALL_PREFIX=libxml2-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLIBXML2_XMLCONF_WORKING_DIR=/tests -S . -B libxml2-build 62 - cmake --build libxml2-build --target install 63 - mkdir -p libxml2-install/share/libxml2 64 - cp Copyright libxml2-install/share/libxml2 65 - cd libxml2-build 66 - ctest -VV 67 after_script: 68 - cd libxml2-install 69 - tar -czf ../libxml2-$CI_COMMIT_SHORT_SHA-$CC-$SUFFIX.tar.gz * 70 artifacts: 71 paths: 72 - libxml2-$CI_COMMIT_SHORT_SHA-$CC-$SUFFIX.tar.gz 73 expire_in: 1 day 74 75cmake:linux:gcc:shared: 76 extends: .cmake:linux 77 only: 78 - schedules 79 variables: 80 BUILD_SHARED_LIBS: "ON" 81 CC: gcc 82 SUFFIX: shared 83 84cmake:linux:gcc:static: 85 extends: .cmake:linux 86 only: 87 - schedules 88 variables: 89 BUILD_SHARED_LIBS: "OFF" 90 CC: gcc 91 SUFFIX: static 92 93cmake:linux:clang:shared: 94 extends: .cmake:linux 95 only: 96 - schedules 97 variables: 98 BUILD_SHARED_LIBS: "ON" 99 CC: clang 100 SUFFIX: shared 101 102cmake:linux:clang:static: 103 extends: .cmake:linux 104 only: 105 - schedules 106 variables: 107 BUILD_SHARED_LIBS: "OFF" 108 CC: clang 109 SUFFIX: static 110 111.cmake:mingw: 112 tags: 113 - win32-ps 114 before_script: 115 - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12" 116 - $Env:Path="C:\msys64\$Env:MINGW_PATH\bin;C:\msys64\usr\bin;$Env:Path" 117 - pacman --noconfirm -Syu 118 - pacman --noconfirm -S 119 $Env:MINGW_PACKAGE_PREFIX-cmake 120 $Env:MINGW_PACKAGE_PREFIX-libiconv 121 $Env:MINGW_PACKAGE_PREFIX-ninja 122 $Env:MINGW_PACKAGE_PREFIX-python 123 $Env:MINGW_PACKAGE_PREFIX-python2 124 $Env:MINGW_PACKAGE_PREFIX-xz 125 $Env:MINGW_PACKAGE_PREFIX-zlib 126 - if (-not (Test-Path 7za.exe)) { 127 Invoke-WebRequest -Uri https://www.7-zip.org/a/7z1900-extra.7z -OutFile 7z1900-extra.7z ; 128 cmake -E tar xf 7z1900-extra.7z 7za.exe 129 } 130 - if (-not (Test-Path libxml2-build/xmlconf)) { 131 Invoke-WebRequest -Uri https://www.w3.org/XML/Test/xmlts20080827.tar.gz -OutFile xmlts20080827.tar.gz ; 132 .\7za.exe x xmlts20080827.tar.gz -olibxml2-build 133 } 134 script: 135 - cmake -G Ninja -DBUILD_SHARED_LIBS="$Env:BUILD_SHARED_LIBS" -DCMAKE_INSTALL_PREFIX=libxml2-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B libxml2-build 136 - cmake --build libxml2-build --target install 137 - New-Item -ItemType Directory libxml2-install\share\libxml2 138 - Copy-Item Copyright libxml2-install\share\libxml2 139 - cd libxml2-build 140 - ctest -VV 141 after_script: 142 - .\7za.exe a libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:MINGW_PACKAGE_PREFIX-$Env:SUFFIX.7z .\libxml2-install\* 143 cache: 144 key: "$MINGW_PACKAGE_PREFIX" 145 paths: 146 - libxml2-build/xmlconf/ 147 - 7za.exe 148 artifacts: 149 paths: 150 - libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:MINGW_PACKAGE_PREFIX-$Env:SUFFIX.7z 151 expire_in: 1 day 152 153cmake:mingw:w64-i686:shared: 154 extends: .cmake:mingw 155 only: 156 - schedules 157 variables: 158 BUILD_SHARED_LIBS: "ON" 159 MINGW_PACKAGE_PREFIX: mingw-w64-i686 160 MINGW_PATH: mingw32 161 SUFFIX: shared 162 163cmake:mingw:w64-i686:static: 164 extends: .cmake:mingw 165 only: 166 - schedules 167 variables: 168 BUILD_SHARED_LIBS: "OFF" 169 MINGW_PACKAGE_PREFIX: mingw-w64-i686 170 MINGW_PATH: mingw32 171 SUFFIX: static 172 173cmake:mingw:w64-x86_64:shared: 174 extends: .cmake:mingw 175 variables: 176 BUILD_SHARED_LIBS: "ON" 177 MINGW_PACKAGE_PREFIX: mingw-w64-x86_64 178 MINGW_PATH: mingw64 179 SUFFIX: shared 180 181cmake:mingw:w64-x86_64:static: 182 extends: .cmake:mingw 183 only: 184 - schedules 185 variables: 186 BUILD_SHARED_LIBS: "OFF" 187 MINGW_PACKAGE_PREFIX: mingw-w64-x86_64 188 MINGW_PATH: mingw64 189 SUFFIX: static 190 191.cmake:msvc: 192 tags: 193 - win32-ps 194 variables: 195 CMAKE_VERSION: 3.19.4 196 before_script: 197 - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12" 198 - if (-not (Test-Path cmake-$Env:CMAKE_VERSION-win64-x64)) { 199 Invoke-WebRequest -Uri http://github.com/Kitware/CMake/releases/download/v$Env:CMAKE_VERSION/cmake-$Env:CMAKE_VERSION-win64-x64.zip -OutFile cmake-$Env:CMAKE_VERSION-win64-x64.zip ; 200 Expand-Archive cmake-$Env:CMAKE_VERSION-win64-x64.zip -DestinationPath . 201 } 202 - $Env:Path="$Env:CI_PROJECT_DIR\cmake-$Env:CMAKE_VERSION-win64-x64\bin;$Env:Path" 203 - if (-not (Test-Path 7za.exe)) { 204 Invoke-WebRequest -Uri https://www.7-zip.org/a/7z1900-extra.7z -OutFile 7z1900-extra.7z ; 205 cmake -E tar xf 7z1900-extra.7z 7za.exe 206 } 207 - if (-not (Test-Path libxml2-build/xmlconf)) { 208 Invoke-WebRequest -Uri https://www.w3.org/XML/Test/xmlts20080827.tar.gz -OutFile xmlts20080827.tar.gz ; 209 .\7za.exe x xmlts20080827.tar.gz -olibxml2-build 210 } 211 script: 212 - cmake -DBUILD_SHARED_LIBS="$Env:BUILD_SHARED_LIBS" -DCMAKE_INSTALL_PREFIX=libxml2-install -DLIBXML2_WITH_ICONV=OFF -DLIBXML2_WITH_LZMA=OFF -DLIBXML2_WITH_PYTHON=OFF -DLIBXML2_WITH_ZLIB=OFF -S . -B libxml2-build 213 - cmake --build libxml2-build --config Debug --target install 214 - cmake --build libxml2-build --config Release --target install 215 - New-Item -ItemType Directory libxml2-install\share\libxml2 216 - Copy-Item Copyright libxml2-install\share\libxml2 217 - cd libxml2-build 218 - ctest -C Debug -VV 219 - ctest -C Release -VV 220 after_script: 221 - .\7za.exe a libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:CMAKE_GENERATOR_TOOLSET-$Env:CMAKE_GENERATOR_PLATFORM-$Env:SUFFIX.7z .\libxml2-install\* 222 cache: 223 key: "msvc" 224 paths: 225 - cmake-$Env:CMAKE_VERSION-win64-x64/ 226 - libxml2-build/xmlconf/ 227 - 7za.exe 228 artifacts: 229 paths: 230 - libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:CMAKE_GENERATOR_TOOLSET-$Env:CMAKE_GENERATOR_PLATFORM-$Env:SUFFIX.7z 231 expire_in: 1 day 232 233.cmake:msvc:v141: 234 extends: .cmake:msvc 235 variables: 236 CMAKE_GENERATOR: Visual Studio 15 2017 237 CMAKE_GENERATOR_TOOLSET: v141 238 239.cmake:msvc:v141:x64: 240 extends: .cmake:msvc:v141 241 variables: 242 CMAKE_GENERATOR_PLATFORM: x64 243 244cmake:msvc:v141:x64:shared: 245 extends: .cmake:msvc:v141:x64 246 variables: 247 BUILD_SHARED_LIBS: "ON" 248 SUFFIX: shared 249 250cmake:msvc:v141:x64:static: 251 extends: .cmake:msvc:v141:x64 252 only: 253 - schedules 254 variables: 255 BUILD_SHARED_LIBS: "OFF" 256 SUFFIX: static 257 258.cmake:msvc:v141:x86: 259 extends: .cmake:msvc:v141 260 only: 261 - schedules 262 variables: 263 CMAKE_GENERATOR_PLATFORM: Win32 264 265cmake:msvc:v141:x86:shared: 266 extends: .cmake:msvc:v141:x86 267 only: 268 - schedules 269 variables: 270 BUILD_SHARED_LIBS: "ON" 271 SUFFIX: shared 272 273cmake:msvc:v141:x86:static: 274 extends: .cmake:msvc:v141:x86 275 variables: 276 BUILD_SHARED_LIBS: "OFF" 277 SUFFIX: static 278 279pages: 280 script: 281 - mkdir -p public 282 - cp -r doc/devhelp doc/tutorial doc/xmllint.html doc/xmlcatalog_man.html public 283 artifacts: 284 paths: 285 - public 286 exclude: 287 - public/devhelp/Makefile* 288 - public/devhelp/*.xsl 289 only: 290 - master@GNOME/libxml2 291