| .test: |
| # The image was generated with the following Dockerfile. It is also used |
| # for libxslt, that's why we need git and libgcrypt-dev. |
| # |
| # FROM ubuntu:20.04 |
| # ENV DEBIAN_FRONTEND=noninteractive |
| # RUN apt-get update && \ |
| # apt-get upgrade -y && \ |
| # apt-get install -y --no-install-recommends \ |
| # curl git ca-certificates \ |
| # autoconf automake libtool pkg-config \ |
| # make gcc clang llvm \ |
| # zlib1g-dev liblzma-dev libgcrypt-dev \ |
| # python-dev python3-dev \ |
| # cmake |
| # WORKDIR /tests |
| # RUN curl https://www.w3.org/XML/Test/xmlts20080827.tar.gz |tar xz |
| image: registry.gitlab.gnome.org/gnome/libxml2 |
| script: |
| - | |
| ln -s /tests/xmlconf |
| sh autogen.sh $CONFIG |
| make -j$(nproc) V=1 CFLAGS="$CFLAGS -Werror" |
| make check |
| |
| gcc: |
| extends: .test |
| variables: |
| CFLAGS: "-O2 -std=c89 -D_XOPEN_SOURCE=700" |
| |
| gcc:python3: |
| extends: .test |
| only: |
| - schedules |
| variables: |
| CONFIG: "--with-python=/usr/bin/python3" |
| CFLAGS: "-O2" |
| |
| clang:asan: |
| extends: .test |
| variables: |
| CONFIG: "--without-python" |
| CC: clang |
| CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined,integer -fno-sanitize-recover=all -Wno-error=cast-align" |
| # LeakSanitizer requires SYS_CAP_PTRACE |
| ASAN_OPTIONS: "detect_leaks=0" |
| UBSAN_OPTIONS: "print_stacktrace=1" |
| |
| clang:msan: |
| extends: .test |
| only: |
| - schedules |
| variables: |
| CONFIG: "--without-python --without-zlib --without-lzma" |
| CC: clang |
| CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=memory -Wno-error=cast-align" |
| |
| .cmake:linux: |
| image: registry.gitlab.gnome.org/gnome/libxml2 |
| script: |
| - 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 |
| - cmake --build libxml2-build --target install |
| - mkdir -p libxml2-install/share/libxml2 |
| - cp Copyright libxml2-install/share/libxml2 |
| - cd libxml2-build |
| - ctest -VV |
| after_script: |
| - cd libxml2-install |
| - tar -czf ../libxml2-$CI_COMMIT_SHORT_SHA-$CC-$SUFFIX.tar.gz * |
| artifacts: |
| paths: |
| - libxml2-$CI_COMMIT_SHORT_SHA-$CC-$SUFFIX.tar.gz |
| expire_in: 1 day |
| |
| cmake:linux:gcc:shared: |
| extends: .cmake:linux |
| only: |
| - schedules |
| variables: |
| BUILD_SHARED_LIBS: "ON" |
| CC: gcc |
| SUFFIX: shared |
| |
| cmake:linux:gcc:static: |
| extends: .cmake:linux |
| only: |
| - schedules |
| variables: |
| BUILD_SHARED_LIBS: "OFF" |
| CC: gcc |
| SUFFIX: static |
| |
| cmake:linux:clang:shared: |
| extends: .cmake:linux |
| only: |
| - schedules |
| variables: |
| BUILD_SHARED_LIBS: "ON" |
| CC: clang |
| SUFFIX: shared |
| |
| cmake:linux:clang:static: |
| extends: .cmake:linux |
| only: |
| - schedules |
| variables: |
| BUILD_SHARED_LIBS: "OFF" |
| CC: clang |
| SUFFIX: static |
| |
| .cmake:mingw: |
| tags: |
| - win32-ps |
| before_script: |
| - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12" |
| - $Env:Path="C:\msys64\$Env:MINGW_PATH\bin;C:\msys64\usr\bin;$Env:Path" |
| - pacman --noconfirm -Syu |
| - pacman --noconfirm -S |
| $Env:MINGW_PACKAGE_PREFIX-cmake |
| $Env:MINGW_PACKAGE_PREFIX-libiconv |
| $Env:MINGW_PACKAGE_PREFIX-ninja |
| $Env:MINGW_PACKAGE_PREFIX-python |
| $Env:MINGW_PACKAGE_PREFIX-python2 |
| $Env:MINGW_PACKAGE_PREFIX-xz |
| $Env:MINGW_PACKAGE_PREFIX-zlib |
| - if (-not (Test-Path 7za.exe)) { |
| Invoke-WebRequest -Uri https://www.7-zip.org/a/7z1900-extra.7z -OutFile 7z1900-extra.7z ; |
| cmake -E tar xf 7z1900-extra.7z 7za.exe |
| } |
| - if (-not (Test-Path libxml2-build/xmlconf)) { |
| Invoke-WebRequest -Uri https://www.w3.org/XML/Test/xmlts20080827.tar.gz -OutFile xmlts20080827.tar.gz ; |
| .\7za.exe x xmlts20080827.tar.gz -olibxml2-build |
| } |
| script: |
| - cmake -G Ninja -DBUILD_SHARED_LIBS="$Env:BUILD_SHARED_LIBS" -DCMAKE_INSTALL_PREFIX=libxml2-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B libxml2-build |
| - cmake --build libxml2-build --target install |
| - New-Item -ItemType Directory libxml2-install\share\libxml2 |
| - Copy-Item Copyright libxml2-install\share\libxml2 |
| - cd libxml2-build |
| - ctest -VV |
| after_script: |
| - .\7za.exe a libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:MINGW_PACKAGE_PREFIX-$Env:SUFFIX.7z .\libxml2-install\* |
| cache: |
| key: "$MINGW_PACKAGE_PREFIX" |
| paths: |
| - libxml2-build/xmlconf/ |
| - 7za.exe |
| artifacts: |
| paths: |
| - libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:MINGW_PACKAGE_PREFIX-$Env:SUFFIX.7z |
| expire_in: 1 day |
| |
| cmake:mingw:w64-i686:shared: |
| extends: .cmake:mingw |
| only: |
| - schedules |
| variables: |
| BUILD_SHARED_LIBS: "ON" |
| MINGW_PACKAGE_PREFIX: mingw-w64-i686 |
| MINGW_PATH: mingw32 |
| SUFFIX: shared |
| |
| cmake:mingw:w64-i686:static: |
| extends: .cmake:mingw |
| only: |
| - schedules |
| variables: |
| BUILD_SHARED_LIBS: "OFF" |
| MINGW_PACKAGE_PREFIX: mingw-w64-i686 |
| MINGW_PATH: mingw32 |
| SUFFIX: static |
| |
| cmake:mingw:w64-x86_64:shared: |
| extends: .cmake:mingw |
| variables: |
| BUILD_SHARED_LIBS: "ON" |
| MINGW_PACKAGE_PREFIX: mingw-w64-x86_64 |
| MINGW_PATH: mingw64 |
| SUFFIX: shared |
| |
| cmake:mingw:w64-x86_64:static: |
| extends: .cmake:mingw |
| only: |
| - schedules |
| variables: |
| BUILD_SHARED_LIBS: "OFF" |
| MINGW_PACKAGE_PREFIX: mingw-w64-x86_64 |
| MINGW_PATH: mingw64 |
| SUFFIX: static |
| |
| .cmake:msvc: |
| tags: |
| - win32-ps |
| variables: |
| CMAKE_VERSION: 3.19.4 |
| before_script: |
| - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12" |
| - if (-not (Test-Path cmake-$Env:CMAKE_VERSION-win64-x64)) { |
| 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 ; |
| Expand-Archive cmake-$Env:CMAKE_VERSION-win64-x64.zip -DestinationPath . |
| } |
| - $Env:Path="$Env:CI_PROJECT_DIR\cmake-$Env:CMAKE_VERSION-win64-x64\bin;$Env:Path" |
| - if (-not (Test-Path 7za.exe)) { |
| Invoke-WebRequest -Uri https://www.7-zip.org/a/7z1900-extra.7z -OutFile 7z1900-extra.7z ; |
| cmake -E tar xf 7z1900-extra.7z 7za.exe |
| } |
| - if (-not (Test-Path libxml2-build/xmlconf)) { |
| Invoke-WebRequest -Uri https://www.w3.org/XML/Test/xmlts20080827.tar.gz -OutFile xmlts20080827.tar.gz ; |
| .\7za.exe x xmlts20080827.tar.gz -olibxml2-build |
| } |
| script: |
| - 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 |
| - cmake --build libxml2-build --config Debug --target install |
| - cmake --build libxml2-build --config Release --target install |
| - New-Item -ItemType Directory libxml2-install\share\libxml2 |
| - Copy-Item Copyright libxml2-install\share\libxml2 |
| - cd libxml2-build |
| - ctest -C Debug -VV |
| - ctest -C Release -VV |
| after_script: |
| - .\7za.exe a libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:CMAKE_GENERATOR_TOOLSET-$Env:CMAKE_GENERATOR_PLATFORM-$Env:SUFFIX.7z .\libxml2-install\* |
| cache: |
| key: "msvc" |
| paths: |
| - cmake-$Env:CMAKE_VERSION-win64-x64/ |
| - libxml2-build/xmlconf/ |
| - 7za.exe |
| artifacts: |
| paths: |
| - libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:CMAKE_GENERATOR_TOOLSET-$Env:CMAKE_GENERATOR_PLATFORM-$Env:SUFFIX.7z |
| expire_in: 1 day |
| |
| .cmake:msvc:v141: |
| extends: .cmake:msvc |
| variables: |
| CMAKE_GENERATOR: Visual Studio 15 2017 |
| CMAKE_GENERATOR_TOOLSET: v141 |
| |
| .cmake:msvc:v141:x64: |
| extends: .cmake:msvc:v141 |
| variables: |
| CMAKE_GENERATOR_PLATFORM: x64 |
| |
| cmake:msvc:v141:x64:shared: |
| extends: .cmake:msvc:v141:x64 |
| variables: |
| BUILD_SHARED_LIBS: "ON" |
| SUFFIX: shared |
| |
| cmake:msvc:v141:x64:static: |
| extends: .cmake:msvc:v141:x64 |
| only: |
| - schedules |
| variables: |
| BUILD_SHARED_LIBS: "OFF" |
| SUFFIX: static |
| |
| .cmake:msvc:v141:x86: |
| extends: .cmake:msvc:v141 |
| only: |
| - schedules |
| variables: |
| CMAKE_GENERATOR_PLATFORM: Win32 |
| |
| cmake:msvc:v141:x86:shared: |
| extends: .cmake:msvc:v141:x86 |
| only: |
| - schedules |
| variables: |
| BUILD_SHARED_LIBS: "ON" |
| SUFFIX: shared |
| |
| cmake:msvc:v141:x86:static: |
| extends: .cmake:msvc:v141:x86 |
| variables: |
| BUILD_SHARED_LIBS: "OFF" |
| SUFFIX: static |
| |
| pages: |
| script: |
| - mkdir -p public |
| - cp -r doc/devhelp doc/tutorial doc/xmllint.html doc/xmlcatalog_man.html public |
| artifacts: |
| paths: |
| - public |
| exclude: |
| - public/devhelp/Makefile* |
| - public/devhelp/*.xsl |
| only: |
| - master@GNOME/libxml2 |