summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: 9ef52c9053d9fb396c9836be9cf796e2f163bcf8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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

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:
      - "${CI_PROJECT_DIR}/_build/meson-logs"

test:
  stage: test
  script:
    - meson _build . -Db_coverage=true
    - ninja -C _build test
    - ninja -C _build coverage
  coverage: '/^\s+lines\.+:\s+([\d.]+\%)\s+/'

# 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:
      - "${CI_PROJECT_DIR}/_build/meson-dist/dconf-*.tar.xz"

pages:
  stage: deploy
  only:
    - master
  script:
    - meson -Db_coverage=true -Ddocumentation=true _build .
    - ninja -C _build test dconf-doc
    - ninja -C _build coverage
    - mkdir -p public/
    - mv _build/dconf/docs/html/ public/docs/
    - mv _build/meson-logs/coveragereport/ public/coverage/
  artifacts:
    paths:
      - public