summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml77
1 files changed, 77 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..3bbe08f
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,77 @@
+image: debian:unstable
+
+before_script:
+ - apt update -qq
+ - apt install -y -qq build-essential meson pkg-config gtk-doc-tools
+ libxml2-utils gobject-introspection dbus dbus-x11
+ libgirepository1.0-dev libglib2.0-dev
+ lcov valac
+ - export LANG=C.UTF-8
+
+stages:
+ - build
+ - test
+ - deploy
+
+variables:
+ MESON_TEST_TIMEOUT_MULTIPLIER: 2
+
+build-job:
+ stage: build
+ script:
+ - meson --buildtype debug --werror _build .
+ - ninja -C _build
+ except:
+ - tags
+ artifacts:
+ when: on_failure
+ name: "dconf-_${CI_COMMIT_REF_NAME}"
+ paths:
+ - "_build/meson-logs"
+
+test:
+ stage: test
+ script:
+ - meson _build . -Db_coverage=true
+ - ninja -C _build
+ - mkdir -p _coverage
+ - lcov --rc lcov_branch_coverage=1 --directory _build --capture --initial --output-file "_coverage/${CI_JOB_NAME}-baseline.lcov"
+ - meson test -C _build --timeout-multiplier ${MESON_TEST_TIMEOUT_MULTIPLIER}
+ - lcov --rc lcov_branch_coverage=1 --directory _build --capture --output-file "_coverage/${CI_JOB_NAME}.lcov"
+ coverage: '/^\s+lines\.+:\s+([\d.]+\%)\s+/'
+ except:
+ - tags
+ artifacts:
+ when: on_failure
+ name: "dconf-_${CI_COMMIT_REF_NAME}"
+ paths:
+ - "_build/meson-logs"
+ - "_coverage"
+
+# FIXME: Run gtkdoc-check when we can. See:
+# https://github.com/mesonbuild/meson/issues/3580
+
+dist-job:
+ stage: build
+ only:
+ - tags
+ script:
+ - meson --buildtype release _build .
+ - ninja -C _build dist
+ artifacts:
+ paths:
+ - "_build/meson-dist/dconf-*.tar.xz"
+
+pages:
+ stage: deploy
+ only:
+ - master
+ script:
+ - meson -Ddocumentation=true _build .
+ - ninja -C _build dconf-doc
+ - mkdir -p public/
+ - mv _build/dconf/docs/html/ public/docs/
+ - mv _coverage/ public/coverage/
+ artifacts:
+ paths:
+ - public \ No newline at end of file