Merge branch 'coverage-regex' into 'master'
[glib.git] / .gitlab-ci.yml
blob6947da2d96c12019a14c204b7c6f8ea14618e975
1 image: registry.gitlab.gnome.org/gnome/glib/master:v1
3 stages:
4   - build
5   - coverage
6   - deploy
8 cache:
9   paths:
10     - _ccache/
12 fedora-meson-x86_64:
13   stage: build
14   variables:
15    CFLAGS: "-coverage -ftest-coverage -fprofile-arcs"
16   script:
17     - meson --prefix /usr --libdir /usr/lib64 --buildtype debug --werror -Dsystemtap=true -Ddtrace=true _build .
18     - cd _build
19     - ninja
20     - meson test --timeout-multiplier 2
21     - cd ..
22     - mkdir -p _coverage
23     - lcov --rc lcov_branch_coverage=1 --directory . --capture --no-external --output-file "_coverage/${CI_JOB_NAME}.lcov"
24   except:
25     - tags
26   artifacts:
27     name: "glib-_${CI_COMMIT_REF_NAME}"
28     paths:
29       - "${CI_PROJECT_DIR}/_build/meson-logs"
30       - "${CI_PROJECT_DIR}/_coverage"
32 msys2-mingw32:
33   stage: build
34   tags:
35     - win32
36   variables:
37     MSYSTEM: "MINGW32"
38     CHERE_INVOKING: "yes"
39   script:
40     - C:\msys64\usr\bin\pacman --noconfirm -Syyuu --ask 20
41     - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh"
42   artifacts:
43     paths:
44       - _coverage/
46 coverage:
47   stage: coverage
48   artifacts:
49     paths:
50       - _coverage/
51   script:
52     - bash -x ./.gitlab-ci/coverage-docker.sh
53   coverage: '/^\s+lines\.+:\s+([\d.]+\%)\s+/'
55 pages:
56   stage: deploy
57   script:
58     - mv _coverage/ public/
59   artifacts:
60     paths:
61       - public
62   only:
63     - master
65 dist-job:
66   stage: build
67   only:
68     - tags
69   script:
70     - meson --prefix /usr --libdir /usr/lib64 --buildtype release -Dgtk_doc=true -Dman=true _build .
71     - cd _build
72     - ninja dist
73     - ninja glib-doc
74     - tar -c -f "glib-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/glib html
75     - tar -c -f "gobject-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gobject html
76     - tar -c -f "gio-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gio html
77   artifacts:
78     paths:
79       - "${CI_PROJECT_DIR}/_build/glib-docs.tar.xz"
80       - "${CI_PROJECT_DIR}/_build/gobject-docs.tar.xz"
81       - "${CI_PROJECT_DIR}/_build/gio-docs.tar.xz"
82       - "${CI_PROJECT_DIR}/_build/meson-dist/glib-*.tar.xz"