win32: make g_cond_wait_until() wait at least until end_time before returning with...
[glib.git] / .gitlab-ci.yml
blobccee2ed0c8706f92d38383b9252daacf02a786cf
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 variables:
13   MESON_TEST_TIMEOUT_MULTIPLIER: 2
15 fedora-meson-x86_64:
16   stage: build
17   variables:
18    CFLAGS: "-coverage -ftest-coverage -fprofile-arcs"
19   script:
20     - meson --prefix /usr --libdir /usr/lib64 --buildtype debug --werror -Dsystemtap=true -Ddtrace=true _build .
21     - cd _build
22     - ninja
23     - meson test --timeout-multiplier ${MESON_TEST_TIMEOUT_MULTIPLIER}
24     - cd ..
25     - mkdir -p _coverage
26     - lcov --rc lcov_branch_coverage=1 --directory . --capture --no-external --output-file "_coverage/${CI_JOB_NAME}.lcov"
27   except:
28     - tags
29   artifacts:
30     name: "glib-_${CI_COMMIT_REF_NAME}"
31     paths:
32       - "${CI_PROJECT_DIR}/_build/meson-logs"
33       - "${CI_PROJECT_DIR}/_coverage"
35 msys2-mingw32:
36   stage: build
37   tags:
38     - win32
39   variables:
40     MSYSTEM: "MINGW32"
41     CHERE_INVOKING: "yes"
42   script:
43     - C:\msys64\usr\bin\pacman --noconfirm -Syyuu --ask 20
44     - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh"
45   artifacts:
46     paths:
47       - _coverage/
49 vs2017-x64:
50   stage: build
51   tags:
52     - win32
53   script:
54     - .gitlab-ci/test-msvc.bat
55   artifacts:
56     when: always
57     paths:
58       - _build/meson-logs
60 coverage:
61   stage: coverage
62   artifacts:
63     paths:
64       - _coverage/
65   script:
66     - bash -x ./.gitlab-ci/coverage-docker.sh
67   coverage: '/^\s+lines\.+:\s+([\d.]+\%)\s+/'
69 pages:
70   stage: deploy
71   script:
72     - mv _coverage/ public/
73   artifacts:
74     paths:
75       - public
76   only:
77     - master
79 dist-job:
80   stage: build
81   only:
82     - tags
83   script:
84     - meson --prefix /usr --libdir /usr/lib64 --buildtype release -Dgtk_doc=true -Dman=true _build .
85     - cd _build
86     - ninja dist
87     - ninja glib-doc
88     - tar -c -f "glib-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/glib html
89     - tar -c -f "gobject-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gobject html
90     - tar -c -f "gio-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gio html
91   artifacts:
92     paths:
93       - "${CI_PROJECT_DIR}/_build/glib-docs.tar.xz"
94       - "${CI_PROJECT_DIR}/_build/gobject-docs.tar.xz"
95       - "${CI_PROJECT_DIR}/_build/gio-docs.tar.xz"
96       - "${CI_PROJECT_DIR}/_build/meson-dist/glib-*.tar.xz"