1- default :
1+ .test :
22 # The image was generated with the following Dockerfile. It is also used
33 # for libxslt, that's why we need git and libgcrypt-dev.
44 #
5- # FROM ubuntu:19.04
5+ # FROM ubuntu:20.04
6+ # ENV DEBIAN_FRONTEND=noninteractive
67 # RUN apt-get update && \
78 # apt-get upgrade -y && \
89 # apt-get install -y --no-install-recommends \
910 # curl git ca-certificates \
1011 # autoconf automake libtool pkg-config \
1112 # make gcc clang llvm \
12- # python-dev zlib1g-dev liblzma-dev libgcrypt-dev
13+ # zlib1g-dev liblzma-dev libgcrypt-dev \
14+ # python-dev python3-dev \
15+ # cmake
1316 # WORKDIR /tests
1417 # RUN curl https://www.w3.org/XML/Test/xmlts20080827.tar.gz |tar xz
1518 image : registry.gitlab.gnome.org/gnome/libxml2
16-
17- .test :
1819 script :
1920 - |
2021 ln -s /tests/xmlconf
@@ -27,18 +28,250 @@ gcc:
2728 variables :
2829 CFLAGS : " -O2 -std=c89 -D_XOPEN_SOURCE=700"
2930
31+ gcc:python3 :
32+ extends : .test
33+ only :
34+ - schedules
35+ variables :
36+ CONFIG : " --with-python=/usr/bin/python3"
37+ CFLAGS : " -O2"
38+
3039clang:asan :
3140 extends : .test
3241 variables :
3342 CONFIG : " --without-python"
3443 CC : clang
35- CFLAGS : " -O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined -fno-sanitize=pointer-overflow -fno-sanitize-recover=all -Wno-error=cast-align"
44+ CFLAGS : " -O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined,unsigned-integer-overflow -fno-sanitize-recover=all -Wno-error=cast-align"
45+ # LeakSanitizer requires SYS_CAP_PTRACE
46+ ASAN_OPTIONS : " detect_leaks=0"
3647 UBSAN_OPTIONS : " print_stacktrace=1"
3748
3849clang:msan :
3950 extends : .test
51+ only :
52+ - schedules
4053 variables :
4154 CONFIG : " --without-python --without-zlib --without-lzma"
4255 CC : clang
4356 CFLAGS : " -O2 -g -fno-omit-frame-pointer -fsanitize=memory -Wno-error=cast-align"
4457
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+
75+ cmake: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+
84+ cmake: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+
93+ cmake: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+
102+ cmake: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+
153+ cmake: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+
163+ cmake: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+
173+ cmake: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+
181+ cmake: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+
244+ cmake:msvc:v141:x64:shared :
245+ extends : .cmake:msvc:v141:x64
246+ variables :
247+ BUILD_SHARED_LIBS : " ON"
248+ SUFFIX : shared
249+
250+ cmake: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+
265+ cmake: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+
273+ cmake:msvc:v141:x86:static :
274+ extends : .cmake:msvc:v141:x86
275+ variables :
276+ BUILD_SHARED_LIBS : " OFF"
277+ SUFFIX : static
0 commit comments