Imported Upstream version 2.57.1
[platform/upstream/glib.git] / .gitlab-ci.yml
1 image: registry.gitlab.gnome.org/gnome/glib/master:v1
2
3 stages:
4   - build
5   - coverage
6   - deploy
7
8 cache:
9   paths:
10     - _ccache/
11
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"
31
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/
45
46 coverage:
47   stage: coverage
48   artifacts:
49     paths:
50       - _coverage/
51   script:
52     - bash -x ./.gitlab-ci/coverage-docker.sh
53
54 pages:
55   stage: deploy
56   script:
57     - mv _coverage/ public/
58   artifacts:
59     paths:
60       - public
61   only:
62     - master
63
64 dist-job:
65   stage: build
66   only:
67     - tags
68   script:
69     - meson --prefix /usr --libdir /usr/lib64 --buildtype release -Dgtk_doc=true -Dman=true _build .
70     - cd _build
71     - ninja dist
72     - ninja glib-doc
73     - tar -c -f "glib-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/glib html
74     - tar -c -f "gobject-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gobject html
75     - tar -c -f "gio-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gio html
76   artifacts:
77     paths:
78       - "${CI_PROJECT_DIR}/_build/glib-docs.tar.xz"
79       - "${CI_PROJECT_DIR}/_build/gobject-docs.tar.xz"
80       - "${CI_PROJECT_DIR}/_build/gio-docs.tar.xz"
81       - "${CI_PROJECT_DIR}/_build/meson-dist/glib-*.tar.xz"