tests: Various minor leak fixes in the GIO tests
[glib.git] / .gitlab-ci.yml
blob2b2134ee29e1e8ddccbf08c5efde6ca050b500e3
1 image: registry.gitlab.gnome.org/gnome/glib/master:v4
3 stages:
4   - build
5   - coverage
6   - deploy
8 cache:
9   paths:
10     - _ccache/
12 variables:
13   MESON_TEST_TIMEOUT_MULTIPLIER: 2
15 fedora-x86_64:
16   stage: build
17   except:
18     - tags
19   variables:
20     CFLAGS: "-coverage -ftest-coverage -fprofile-arcs"
21   script:
22     - meson --buildtype debug --werror -Dsystemtap=true -Ddtrace=true -Dfam=true _build .
23     - ninja -C _build
24     - meson test -C _build --timeout-multiplier ${MESON_TEST_TIMEOUT_MULTIPLIER}
25     - mkdir -p _coverage
26     - lcov --rc lcov_branch_coverage=1 --directory . --capture --no-external --output-file "_coverage/${CI_JOB_NAME}.lcov"
27   artifacts:
28     name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
29     when: always
30     paths:
31       - "_build/meson-logs"
32       - "_coverage"
34 cross-android_api21_arm64:
35   stage: build
36   except:
37     - tags
38   script:
39     # FIXME: add --werror
40     - meson --cross-file=/opt/cross_file_android_api21_arm64.txt -Diconv=gnu -Dinternal_pcre=true --buildtype debug _build
41     - ninja -C _build
42   artifacts:
43     name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
44     when: always
45     paths:
46       - "_build/meson-logs"
48 cross-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     name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
58     when: always
59     paths:
60       - "_build/meson-logs"
62 msys2-mingw32:
63   stage: build
64   except:
65     - tags
66   tags:
67     - win32
68   variables:
69     MSYSTEM: "MINGW32"
70     CHERE_INVOKING: "yes"
71   script:
72     - C:\msys64\usr\bin\pacman --noconfirm -Syyuu --ask 20
73     - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh"
74   artifacts:
75     name: "glib-%CI_JOB_NAME%-%CI_COMMIT_REF_NAME%"
76     when: always
77     paths:
78       - _build/meson-logs
79       - _coverage/
81 vs2017-x64:
82   stage: build
83   except:
84     - tags
85   tags:
86     - win32
87   script:
88     - .gitlab-ci/test-msvc.bat
89   artifacts:
90     name: "glib-%CI_JOB_NAME%-%CI_COMMIT_REF_NAME%"
91     when: always
92     paths:
93       - _build/meson-logs
95 coverage:
96   stage: coverage
97   artifacts:
98     name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
99     paths:
100       - _coverage/
101   script:
102     - bash -x ./.gitlab-ci/coverage-docker.sh
103   coverage: '/^\s+lines\.+:\s+([\d.]+\%)\s+/'
105 pages:
106   stage: deploy
107   only:
108     - master
109   script:
110     - mv _coverage/ public/
111   artifacts:
112     paths:
113       - public
115 dist-job:
116   stage: build
117   only:
118     - tags
119   script:
120     - meson --prefix /usr --libdir /usr/lib64 --buildtype release -Dgtk_doc=true -Dman=true _build .
121     - cd _build
122     - ninja dist
123     - ninja glib-doc
124     - tar -c -f "glib-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/glib html
125     - tar -c -f "gobject-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gobject html
126     - tar -c -f "gio-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gio html
127   artifacts:
128     paths:
129       - "${CI_PROJECT_DIR}/_build/glib-docs.tar.xz"
130       - "${CI_PROJECT_DIR}/_build/gobject-docs.tar.xz"
131       - "${CI_PROJECT_DIR}/_build/gio-docs.tar.xz"
132       - "${CI_PROJECT_DIR}/_build/meson-dist/glib-*.tar.xz"