Merge branch 'remove-posix-memalign-compl-check' into 'master'
[glib.git] / .gitlab-ci.yml
blob3ba862ab05975bf51d4a8d9f4bd25a6bc10447c3
1 image: registry.gitlab.gnome.org/gnome/glib/master:v3
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_JOB_NAME}-${CI_COMMIT_REF_NAME}"
31     when: always
32     paths:
33       - "${CI_PROJECT_DIR}/_build/meson-logs"
34       - "${CI_PROJECT_DIR}/_coverage"
36 fedora-meson-android_ndk_r16_api21_arm64:
37   stage: build
38   except:
39     - tags
40   script:
41     # FIXME: add --werror
42     - meson --cross-file=/opt/cross-file-android_ndk_r16_api21_arm64.txt -Diconv=gnu -Dinternal_pcre=true --buildtype debug _build
43     - ninja -C _build
44   artifacts:
45     paths:
46       - "${CI_PROJECT_DIR}/_build/meson-logs"
48 fedora-meson-mingw64:
49   stage: build
50   except:
51     - tags
52   script:
53     # FIXME: Add --werror
54     - meson --cross-file=/opt/cross_file_mingw64.txt --buildtype debug _build
55     - ninja -C _build
56   artifacts:
57     paths:
58       - "${CI_PROJECT_DIR}/_build/meson-logs"
60 msys2-mingw32:
61   stage: build
62   tags:
63     - win32
64   variables:
65     MSYSTEM: "MINGW32"
66     CHERE_INVOKING: "yes"
67   script:
68     - C:\msys64\usr\bin\pacman --noconfirm -Syyuu --ask 20
69     - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh"
70   artifacts:
71     name: "glib-%CI_JOB_NAME%-%CI_COMMIT_REF_NAME%"
72     when: always
73     paths:
74       - _build/meson-logs
75       - _coverage/
77 vs2017-x64:
78   stage: build
79   tags:
80     - win32
81   script:
82     - .gitlab-ci/test-msvc.bat
83   artifacts:
84     name: "glib-%CI_JOB_NAME%-%CI_COMMIT_REF_NAME%"
85     when: always
86     paths:
87       - _build/meson-logs
89 coverage:
90   stage: coverage
91   artifacts:
92     name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
93     paths:
94       - _coverage/
95   script:
96     - bash -x ./.gitlab-ci/coverage-docker.sh
97   coverage: '/^\s+lines\.+:\s+([\d.]+\%)\s+/'
99 pages:
100   stage: deploy
101   script:
102     - mv _coverage/ public/
103   artifacts:
104     paths:
105       - public
106   only:
107     - master
109 dist-job:
110   stage: build
111   only:
112     - tags
113   script:
114     - meson --prefix /usr --libdir /usr/lib64 --buildtype release -Dgtk_doc=true -Dman=true _build .
115     - cd _build
116     - ninja dist
117     - ninja glib-doc
118     - tar -c -f "glib-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/glib html
119     - tar -c -f "gobject-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gobject html
120     - tar -c -f "gio-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gio html
121   artifacts:
122     paths:
123       - "${CI_PROJECT_DIR}/_build/glib-docs.tar.xz"
124       - "${CI_PROJECT_DIR}/_build/gobject-docs.tar.xz"
125       - "${CI_PROJECT_DIR}/_build/gio-docs.tar.xz"
126       - "${CI_PROJECT_DIR}/_build/meson-dist/glib-*.tar.xz"