Edit

kc3-lang/libxml2/.gitlab-ci.yml

Branch :

  • Show log

    Commit

  • Author : Nick Wellnhofer
    Date : 2025-06-22 16:45:49
    Hash : ea91a507
    Message : doc: Generate documentation with Doxygen 1.14 The 1.14.0 release fixes a serious bug with autolinks. Note that the downstream tests now run on Ubuntu with libxml2 and libxslt built on Arch. This seems to work but could break at a later point. Fixes #929.

  • .gitlab-ci.yml
  • include:
      - component: "gitlab.gnome.org/GNOME/citemplates/release-service@master"
        inputs:
          dist-job-name: "dist"
          tarball-artifact-path: "${TARBALL_ARTIFACT_PATH}"
    
    install:
      image: registry.gitlab.gnome.org/gnome/libxml2/docs
      before_script:
        - rm -rf libxml2-build
        - mkdir libxml2-build
        - ln -s /tests/xmlconf .
      script:
        - sh .gitlab-ci/install.sh
      variables:
        CFLAGS: "-O2"
        DOXYGEN_WARN_AS_ERROR: "FAIL_ON_WARNINGS"
      artifacts:
        expire_in: 2 hrs
        paths:
          - install
    
    .test:
      image: registry.gitlab.gnome.org/gnome/libxml2
      variables:
        BASE_CONFIG: "--with-http --with-schematron --with-lzma --with-zlib --with-python"
      before_script:
        - rm -rf libxml2-build
        - mkdir libxml2-build
        - ln -s /tests/xmlconf .
      script:
        - sh .gitlab-ci/test.sh
    
    gcc:
      extends: .test
      variables:
        CFLAGS: "-O2"
    
    gcc:c89:
      extends: .test
      variables:
        CONFIG: "--without-python"
        CFLAGS: "-O2 -std=c89 -D_XOPEN_SOURCE=600 -Wno-error=unused-function -Wno-error=overlength-strings"
    
    gcc:minimum:
      extends: .test
      variables:
        BASE_CONFIG: "--with-minimum"
        CFLAGS: "-O2"
    
    gcc:medium:
      extends: .test
      variables:
        BASE_CONFIG: "--with-minimum"
        CONFIG: "--with-threads --with-tree --with-xpath --with-output --with-html --with-iso8859x --with-valid"
        CFLAGS: "-O2"
    
    gcc:legacy:
      extends: .test
      only:
        - schedules
      variables:
        BASE_CONFIG: "--with-legacy --with-python"
        CFLAGS: "-O2"
    
    gcc:static:
      extends: .test
      variables:
        CONFIG: "--disable-shared --without-python --without-modules"
        CFLAGS: "-O2"
    
    clang:asan:
      extends: .test
      tags:
        - asan
      variables:
        CONFIG: "--without-python"
        CC: clang
        CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined,integer -fno-sanitize-recover=all"
        UBSAN_OPTIONS: "print_stacktrace=1"
        ASAN_SYMBOLIZER_PATH: "$CI_PROJECT_DIR/.gitlab-ci/llvm-symbolizer"
    
    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"
        MSAN_SYMBOLIZER_PATH: "$CI_PROJECT_DIR/.gitlab-ci/llvm-symbolizer"
    
    .mingw:
      tags:
        - win32-ps
      variables:
        BASE_CONFIG: "--with-http --with-schematron --with-lzma --with-zlib --with-python"
        # Python is disabled for now, see #658
        CONFIG: "--with-docs --without-python"
        CHERE_INVOKING: "yes"
      before_script:
        - $Env:Path="C:\msys64\usr\bin;$Env:Path"
        - bash -lc 'sh .gitlab-ci/setup_mingw.sh autotools'
      script:
        - bash -lc 'sh .gitlab-ci/test.sh'
      cache:
        key: "$MSYSTEM"
        paths:
          - xmlconf/
    
    mingw:w64-x86_64:shared:
      extends: .mingw
      variables:
        CFLAGS: "-O2"
        MSYSTEM: MINGW64
    
    mingw:w64-i686:shared:
      extends: .mingw
      only:
        - schedules
      variables:
        CFLAGS: "-O2"
        MSYSTEM: MINGW32
    
    # Disabled, GCC missing?
    .mingw:msys:shared:
      extends: .mingw
      variables:
        CFLAGS: "-O2"
        MSYSTEM: MSYS
    
    .cmake:linux:
      image: registry.gitlab.gnome.org/gnome/libxml2
      before_script:
        - rm -rf libxml2-build
        - mkdir libxml2-build
        - ln -s /tests/xmlconf .
      script:
        - sh .gitlab-ci/test_cmake.sh
      artifacts:
        paths:
          - libxml2-$CI_COMMIT_SHORT_SHA-$SUFFIX.tar.gz
        expire_in: 1 day
    
    cmake:linux:gcc:shared:
      extends: .cmake:linux
      variables:
        BUILD_SHARED_LIBS: "ON"
        CONFIG: "-DLIBXML2_WITH_DOCS=ON"
        CC: gcc
        SUFFIX: linux-gcc-shared
    
    cmake:linux:gcc:static:
      extends: .cmake:linux
      only:
        - schedules
      variables:
        BUILD_SHARED_LIBS: "OFF"
        CC: gcc
        SUFFIX: linux-gcc-static
    
    cmake:linux:clang:shared:
      extends: .cmake:linux
      only:
        - schedules
      variables:
        BUILD_SHARED_LIBS: "ON"
        CC: clang
        SUFFIX: linux-clang-shared
    
    cmake:linux:clang:static:
      extends: .cmake:linux
      only:
        - schedules
      variables:
        BUILD_SHARED_LIBS: "OFF"
        CC: clang
        SUFFIX: linux-clang-static
    
    .cmake:mingw:
      tags:
        - win32-ps
      variables:
        CHERE_INVOKING: "yes"
      before_script:
        - $Env:Path="C:\msys64\usr\bin;$Env:Path"
        - bash -lc 'sh .gitlab-ci/setup_mingw.sh cmake ninja'
      script:
        - bash -lc 'sh .gitlab-ci/test_cmake.sh -G Ninja'
      cache:
        key: "$MSYSTEM"
        paths:
          - xmlconf/
      artifacts:
        paths:
          - libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:SUFFIX.tar.gz
        expire_in: 1 day
    
    cmake:mingw:w64-i686:shared:
      extends: .cmake:mingw
      only:
        - schedules
      variables:
        BUILD_SHARED_LIBS: "ON"
        CONFIG: "-DLIBXML2_WITH_DOCS=ON"
        MSYSTEM: MINGW32
        SUFFIX: mingw-w64-i686-shared
    
    cmake:mingw:w64-i686:static:
      extends: .cmake:mingw
    #  only:
    #    - schedules
      variables:
        BUILD_SHARED_LIBS: "OFF"
        MSYSTEM: MINGW32
        SUFFIX: mingw-w64-i686-static
    
    cmake:mingw:w64-x86_64:shared:
      extends: .cmake:mingw
    #  only:
    #    - schedules
      variables:
        BUILD_SHARED_LIBS: "ON"
        MSYSTEM: MINGW64
        SUFFIX: mingw-w64-x86_64-shared
    
    cmake:mingw:w64-x86_64:static:
      extends: .cmake:mingw
      only:
        - schedules
      variables:
        BUILD_SHARED_LIBS: "OFF"
        MSYSTEM: MINGW64
        SUFFIX: mingw-w64-x86_64-static
    
    .cmake:msvc:
      tags:
        - win32-ps
      variables:
        # MSVC warns when casting `const char **` to `void *` which is wrong.
        # Disable warning C4090.
        CFLAGS: /WX /wd4090
        CMAKE_VERSION: 3.19.4
      script:
        - .gitlab-ci/Test-Msvc
      cache:
        key: "msvc"
        paths:
          - cmake-$Env:CMAKE_VERSION-win64-x64/
          - 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
    
    meson:
      image: registry.gitlab.gnome.org/gnome/libxml2
      before_script:
        - ln -s /tests/xmlconf .
      script:
        - sh .gitlab-ci/test_meson.sh
    
    cmake:linux:gcc:shared:
      extends: .cmake:linux
      variables:
        BUILD_SHARED_LIBS: "ON"
        CC: gcc
        SUFFIX: linux-gcc-shared
    
    dist:
      image: registry.gitlab.gnome.org/gnome/libxml2
      script:
        - sh .gitlab-ci/dist.sh
        - echo "TARBALL_ARTIFACT_PATH=$(ls libxml2-dist/*.tar.xz)" >> build.env
      artifacts:
        paths:
          - libxml2-dist/*.tar.xz
        reports:
          dotenv: build.env
    
    pages:
      needs: [install]
      script:
        - cp -r install/share/doc/libxml2 public
        - cp doc/_redirects public
      artifacts:
        paths:
          - public
      only:
        - master@GNOME/libxml2
    
    downstream-lxml:
      image: registry.gitlab.gnome.org/gnome/libxml2
      needs: [install]
      script:
        - sh .gitlab-ci/downstream-lxml.sh
    
    downstream-nokogiri:
      # owner: @flavorjones
      image: ghcr.io/sparklemotion/nokogiri-test:upstream-libxml
      script:
        - .gitlab-ci/downstream-nokogiri.sh
    
    downstream-perl:
      image: registry.gitlab.gnome.org/gnome/libxml2
      needs: [install]
      script:
        - sh .gitlab-ci/downstream-perl.sh
    
    downstream-php:
      image: registry.gitlab.gnome.org/gnome/libxml2
      needs: [install]
      script:
        - sh .gitlab-ci/downstream-php.sh
    
    downstream-xmlstarlet:
      image: registry.gitlab.gnome.org/gnome/libxml2
      needs: [install]
      script:
        - sh .gitlab-ci/downstream-xmlstarlet.sh