image: registry.gitlab.gnome.org/gnome/libsoup/master:v8 stages: - build - coverage - docs - deploy .build: stage: build tags: # We need runners supporting IPv6: # https://gitlab.gnome.org/Infrastructure/GitLab/issues/313 - ipv6 fedora-test: extends: .build script: - cp .gitlab-ci/lcovrc ~/.lcovrc - meson _build -Db_coverage=true -Dauto_features=enabled - meson compile -C _build - meson test -C _build --verbose - ninja -C _build coverage-html artifacts: reports: junit: "_build/${CI_JOB_NAME}-report.xml" name: "libsoup-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}" when: always paths: - "_build/config.h" - "_build/meson-logs/testlog.txt" - "_build/meson-logs/coveragereport" coverage: '/^\s+lines\.+:\s+([\d.]+\%)\s+/' fedora-scan: extends: .build script: - meson _build -Dauto_features=enabled - ninja -C _build scan-build - bash -c 'if [[ -n "$(ls -A _build/meson-logs/scanbuild/)" ]]; then echo "Scan build log found, assuming defects exist"; exit 1; fi' artifacts: when: on_failure paths: - _build/meson-logs/scanbuild fedora-asan: stage: build tags: - asan variables: ASAN_OPTIONS: fast_unwind_on_malloc=0 SOUP_TEST_NO_IPV6: 1 script: - meson _build -Dauto-features=enabled -Db_sanitize=address -Dintrospection=disabled -Dvapi=disabled - meson test -C _build --verbose --timeout-multiplier=10 artifacts: when: on_failure paths: - "_build/meson-logs/testlog.txt" # fedora-fuzzing: # stage: build # allow_failure: true # variables: # CC: clang # script: # - meson _build -Dauto-features=enabled -Dfuzzing=enabled -Dintrospection=disabled -Dvapi=disabled # - meson test -C _build --suite=fuzzing --timeout-multiplier=10 # artifacts: # when: on_failure # paths: # - _build/meson-logs/ reference: stage: docs variables: DESTDIR: _install needs: [] script: - meson _build -Dgtk_doc=true # FIXME: ninja -C _build libsoup-3.0-doc fails - ninja -C _build install - mv _build/docs/reference/html/ _reference/ - .gitlab-ci/check-docs.py - gtkdoc-rebase --html-dir=_reference/ --online artifacts: paths: - _build/docs/reference/libsoup-3.0-*.txt - _reference coverage: '/^([\d]+\%) symbol docs coverage\.\s+/' pages: stage: deploy needs: ['reference'] script: - mv _reference/ public/ artifacts: paths: - public only: - master