2020-11-19 17:58:46 +01:00
.test :
2019-10-20 18:03:21 +02:00
# The image was generated with the following Dockerfile. It is also used
# for libxslt, that's why we need git and libgcrypt-dev.
2019-10-04 00:21:24 +02:00
#
2020-06-11 16:08:16 +02:00
# FROM ubuntu:20.04
# ENV DEBIAN_FRONTEND=noninteractive
2019-10-04 00:21:24 +02:00
# RUN apt-get update && \
# apt-get upgrade -y && \
# apt-get install -y --no-install-recommends \
2019-10-29 14:21:54 +01:00
# curl git ca-certificates \
2019-10-04 00:21:24 +02:00
# autoconf automake libtool pkg-config \
2019-10-29 14:21:54 +01:00
# make gcc clang llvm \
2020-11-19 17:35:11 +01:00
# zlib1g-dev liblzma-dev libgcrypt-dev \
# python-dev python3-dev \
2020-06-11 16:08:16 +02:00
# cmake
2019-10-29 14:21:54 +01:00
# WORKDIR /tests
# RUN curl https://www.w3.org/XML/Test/xmlts20080827.tar.gz |tar xz
2019-10-04 00:21:24 +02:00
image : registry.gitlab.gnome.org/gnome/libxml2
script :
2019-10-20 18:03:21 +02:00
- |
2019-10-29 14:21:54 +01:00
ln -s /tests/xmlconf
2019-10-20 18:03:21 +02:00
sh autogen.sh $CONFIG
make -j$(nproc) V=1 CFLAGS="$CFLAGS -Werror"
make check
2019-10-04 00:21:24 +02:00
gcc :
extends : .test
variables :
2019-10-20 18:03:21 +02:00
CFLAGS : "-O2 -std=c89 -D_XOPEN_SOURCE=700"
2019-10-04 00:21:24 +02:00
2020-11-19 17:35:11 +01:00
gcc:python3 :
extends : .test
2021-02-22 22:01:57 +01:00
only :
- schedules
2020-11-19 17:35:11 +01:00
variables :
CONFIG : "--with-python=/usr/bin/python3"
CFLAGS : "-O2"
2019-10-04 00:21:24 +02:00
clang:asan :
extends : .test
variables :
CONFIG : "--without-python"
CC : clang
2022-01-25 03:08:22 +01:00
CFLAGS : "-O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined,integer -fno-sanitize-recover=all -Wno-error=cast-align"
2020-03-02 11:52:52 +01:00
# LeakSanitizer requires SYS_CAP_PTRACE
ASAN_OPTIONS : "detect_leaks=0"
2019-10-04 00:21:24 +02:00
UBSAN_OPTIONS : "print_stacktrace=1"
clang:msan :
extends : .test
2021-02-22 22:01:57 +01:00
only :
- schedules
2019-10-04 00:21:24 +02:00
variables :
CONFIG : "--without-python --without-zlib --without-lzma"
CC : clang
2019-10-20 18:03:21 +02:00
CFLAGS : "-O2 -g -fno-omit-frame-pointer -fsanitize=memory -Wno-error=cast-align"
2019-10-04 00:21:24 +02:00
2020-11-19 17:58:46 +01:00
.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
2021-02-22 22:01:57 +01:00
only :
- schedules
2020-11-19 17:58:46 +01:00
variables :
BUILD_SHARED_LIBS : "ON"
CC : gcc
SUFFIX : shared
cmake:linux:gcc:static :
extends : .cmake:linux
2021-02-22 22:01:57 +01:00
only :
- schedules
2020-11-19 17:58:46 +01:00
variables :
BUILD_SHARED_LIBS : "OFF"
CC : gcc
SUFFIX : static
cmake:linux:clang:shared :
extends : .cmake:linux
2021-02-22 22:01:57 +01:00
only :
- schedules
2020-11-19 17:58:46 +01:00
variables :
BUILD_SHARED_LIBS : "ON"
CC : clang
SUFFIX : shared
cmake:linux:clang:static :
extends : .cmake:linux
2021-02-22 22:01:57 +01:00
only :
- schedules
2020-11-19 17:58:46 +01:00
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
2020-11-25 18:01:51 +01:00
- 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
2020-11-19 17:58:46 +01:00
- 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 :
2021-02-05 23:40:18 +01:00
- cmake -G Ninja -DBUILD_SHARED_LIBS="$Env:BUILD_SHARED_LIBS" -DCMAKE_INSTALL_PREFIX=libxml2-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B libxml2-build
2020-11-19 17:58:46 +01:00
- 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
2021-02-22 22:01:57 +01:00
only :
- schedules
2020-11-19 17:58:46 +01:00
variables :
BUILD_SHARED_LIBS : "ON"
MINGW_PACKAGE_PREFIX : mingw-w64-i686
MINGW_PATH : mingw32
SUFFIX : shared
cmake:mingw:w64-i686:static :
extends : .cmake:mingw
2021-02-22 22:01:57 +01:00
only :
- schedules
2020-11-19 17:58:46 +01:00
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
2021-02-22 22:01:57 +01:00
only :
- schedules
2020-11-19 17:58:46 +01:00
variables :
BUILD_SHARED_LIBS : "OFF"
MINGW_PACKAGE_PREFIX : mingw-w64-x86_64
MINGW_PATH : mingw64
SUFFIX : static
2021-02-05 23:40:18 +01:00
.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
2021-02-22 22:01:57 +01:00
only :
- schedules
2021-02-05 23:40:18 +01:00
variables :
BUILD_SHARED_LIBS : "OFF"
SUFFIX : static
2021-02-21 14:26:40 +01:00
.cmake:msvc:v141:x86 :
extends : .cmake:msvc:v141
2021-02-22 22:01:57 +01:00
only :
- schedules
2021-02-21 14:26:40 +01:00
variables :
CMAKE_GENERATOR_PLATFORM : Win32
cmake:msvc:v141:x86:shared :
extends : .cmake:msvc:v141:x86
2021-02-22 22:01:57 +01:00
only :
- schedules
2021-02-21 14:26:40 +01:00
variables :
BUILD_SHARED_LIBS : "ON"
SUFFIX : shared
cmake:msvc:v141:x86:static :
extends : .cmake:msvc:v141:x86
variables :
BUILD_SHARED_LIBS : "OFF"
SUFFIX : static
2022-02-12 20:02:51 +01:00
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 :
2022-02-12 21:36:27 +01:00
- master@GNOME/libxml2