mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-28 16:36:14 +01:00
f83493f83d
This adds to the CI a cross build for Android NDK r16 API 21 (because thats what GStreamer currently use) for arm64. GNU iconv must be built manually into our docker image because Android NDK doesn't seems to ship it. The latest NDK r17 API 28 has iconv.h but iconv_open() symbol isn't found by the linker. Looks like broken NDK. libffi also needs to be built manually because the meson subproject doesn't support building for Android platform. It needs a recent RC release because latest stable release is 4 years old and fails to build. Fixes #1385.
109 lines
2.5 KiB
YAML
109 lines
2.5 KiB
YAML
image: registry.gitlab.gnome.org/gnome/glib/master:v2
|
|
|
|
stages:
|
|
- build
|
|
- coverage
|
|
- deploy
|
|
|
|
cache:
|
|
paths:
|
|
- _ccache/
|
|
|
|
variables:
|
|
MESON_TEST_TIMEOUT_MULTIPLIER: 2
|
|
|
|
fedora-meson-x86_64:
|
|
stage: build
|
|
variables:
|
|
CFLAGS: "-coverage -ftest-coverage -fprofile-arcs"
|
|
script:
|
|
- meson --prefix /usr --libdir /usr/lib64 --buildtype debug --werror -Dsystemtap=true -Ddtrace=true _build .
|
|
- cd _build
|
|
- ninja
|
|
- meson test --timeout-multiplier ${MESON_TEST_TIMEOUT_MULTIPLIER}
|
|
- cd ..
|
|
- mkdir -p _coverage
|
|
- lcov --rc lcov_branch_coverage=1 --directory . --capture --no-external --output-file "_coverage/${CI_JOB_NAME}.lcov"
|
|
except:
|
|
- tags
|
|
artifacts:
|
|
name: "glib-_${CI_COMMIT_REF_NAME}"
|
|
paths:
|
|
- "${CI_PROJECT_DIR}/_build/meson-logs"
|
|
- "${CI_PROJECT_DIR}/_coverage"
|
|
|
|
fedora-meson-android_ndk_r16_api21_arm64:
|
|
stage: build
|
|
except:
|
|
- tags
|
|
script:
|
|
# FIXME: add --werror
|
|
- meson --cross-file=/opt/cross-file-android_ndk_r16_api21_arm64.txt -Diconv=gnu -Dinternal_pcre=true --buildtype debug _build
|
|
- ninja -C _build
|
|
artifacts:
|
|
paths:
|
|
- "${CI_PROJECT_DIR}/_build/meson-logs"
|
|
|
|
msys2-mingw32:
|
|
stage: build
|
|
tags:
|
|
- win32
|
|
variables:
|
|
MSYSTEM: "MINGW32"
|
|
CHERE_INVOKING: "yes"
|
|
script:
|
|
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu --ask 20
|
|
- C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh"
|
|
artifacts:
|
|
paths:
|
|
- _coverage/
|
|
|
|
vs2017-x64:
|
|
stage: build
|
|
tags:
|
|
- win32
|
|
script:
|
|
- .gitlab-ci/test-msvc.bat
|
|
artifacts:
|
|
when: always
|
|
paths:
|
|
- _build/meson-logs
|
|
|
|
coverage:
|
|
stage: coverage
|
|
artifacts:
|
|
paths:
|
|
- _coverage/
|
|
script:
|
|
- bash -x ./.gitlab-ci/coverage-docker.sh
|
|
coverage: '/^\s+lines\.+:\s+([\d.]+\%)\s+/'
|
|
|
|
pages:
|
|
stage: deploy
|
|
script:
|
|
- mv _coverage/ public/
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
only:
|
|
- master
|
|
|
|
dist-job:
|
|
stage: build
|
|
only:
|
|
- tags
|
|
script:
|
|
- meson --prefix /usr --libdir /usr/lib64 --buildtype release -Dgtk_doc=true -Dman=true _build .
|
|
- cd _build
|
|
- ninja dist
|
|
- ninja glib-doc
|
|
- tar -c -f "glib-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/glib html
|
|
- tar -c -f "gobject-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gobject html
|
|
- tar -c -f "gio-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gio html
|
|
artifacts:
|
|
paths:
|
|
- "${CI_PROJECT_DIR}/_build/glib-docs.tar.xz"
|
|
- "${CI_PROJECT_DIR}/_build/gobject-docs.tar.xz"
|
|
- "${CI_PROJECT_DIR}/_build/gio-docs.tar.xz"
|
|
- "${CI_PROJECT_DIR}/_build/meson-dist/glib-*.tar.xz"
|