• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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