Merge branch 'update-ci' into 'main'

ci: Update CI images to latest stable Debian and Fedora, bump Meson dependency to 0.52

See merge request GNOME/glib!2287
This commit is contained in:
Philip Withnall 2021-10-18 10:48:31 +00:00
commit 6163c2c3fe
12 changed files with 45 additions and 45 deletions

View File

@ -10,11 +10,11 @@ cache:
- _ccache/
variables:
FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/glib/fedora:v11"
COVERITY_IMAGE: "registry.gitlab.gnome.org/gnome/glib/coverity:v1"
DEBIAN_IMAGE: "registry.gitlab.gnome.org/gnome/glib/debian-stable:v8"
ANDROID_IMAGE: "registry.gitlab.gnome.org/gnome/glib/android-ndk:v4"
MINGW_IMAGE: "registry.gitlab.gnome.org/gnome/glib/mingw:v3"
FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/glib/fedora:v12"
COVERITY_IMAGE: "registry.gitlab.gnome.org/gnome/glib/coverity:v2"
DEBIAN_IMAGE: "registry.gitlab.gnome.org/gnome/glib/debian-stable:v9"
ANDROID_IMAGE: "registry.gitlab.gnome.org/gnome/glib/android-ndk:v5"
MINGW_IMAGE: "registry.gitlab.gnome.org/gnome/glib/mingw:v4"
MESON_TEST_TIMEOUT_MULTIPLIER: 2
G_MESSAGES_DEBUG: all
MESON_COMMON_OPTIONS_NO_WARNING: "--buildtype debug --wrap-mode=nodownload"
@ -68,7 +68,7 @@ fedora-x86_64:
CFLAGS: "-coverage -ftest-coverage -fprofile-arcs"
script:
# FIXME: Cannot use MESON_COMMON_OPTIONS here because meson warns about gtkdoc
# feature introduced in 0.52 but we only depends on 0.49. So we cannot build
# feature fully functional in 0.54, but we only depend on 0.52. So we cannot build
# with --fatal-meson-warnings.
- meson ${MESON_COMMON_OPTIONS_NO_WARNING}
--werror
@ -270,10 +270,7 @@ cross-android_api21_arm64:
# FIXME: add --werror
# We use -Diconv=auto to test that we successfully detect that iconv is not
# provided by android api 21, and detect the external iconv instead.
# FIXME: Work around a bug in Meson 0.49 where --wrap-mode=nodownload also
# disables fallback subprojects, by passing --wrap-mode=default. Fixed in
# Meson commit 47b9c1a564756ac48a55da9a7c4d91787399c645
- meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_android_arm64_21.txt -Diconv=auto --wrap-mode=default _build
- meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_android_arm64_21.txt -Diconv=auto _build
- ninja -C _build
cross-android_api28_arm64:
@ -281,10 +278,7 @@ cross-android_api28_arm64:
image: $ANDROID_IMAGE
script:
# FIXME: add --werror
# FIXME: Work around a bug in Meson 0.49 where --wrap-mode=nodownload also
# disables fallback subprojects, by passing --wrap-mode=default. Fixed in
# Meson commit 47b9c1a564756ac48a55da9a7c4d91787399c645
- meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_android_arm64_28.txt --wrap-mode=default _build
- meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_android_arm64_28.txt _build
- ninja -C _build
cross-mingw64:
@ -292,10 +286,7 @@ cross-mingw64:
image: $MINGW_IMAGE
script:
# FIXME: Add --werror
# FIXME: Work around a bug in Meson 0.49 where --wrap-mode=nodownload also
# disables fallback subprojects, by passing --wrap-mode=default. Fixed in
# Meson commit 47b9c1a564756ac48a55da9a7c4d91787399c645
- meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_mingw64.txt --wrap-mode=default _build
- meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_mingw64.txt _build
- ninja -C _build
artifacts:
reports:
@ -441,7 +432,7 @@ macos:
needs: []
before_script:
- bash .gitlab-ci/show-execution-environment.sh
- pip3 install --user meson==0.49.2
- pip3 install --user meson==0.52.0
- pip3 install --user ninja
- export PATH=/Users/gitlabrunner/Library/Python/3.7/bin:$PATH
script:
@ -556,8 +547,9 @@ dist-job:
only:
- tags
script:
# FIXME: Cannot use --fatal-meson-warnings here because meson warns about gtkdoc
# feature introduced in 0.52 but we only depends on 0.49.
# FIXME: Cannot use MESON_COMMON_OPTIONS here because meson warns about gtkdoc
# feature fully functional in 0.54, but we only depend on 0.52. So we cannot build
# with --fatal-meson-warnings.
- meson ${MESON_COMMON_OPTIONS_NO_WARNING} --buildtype release -Dgtk_doc=true -Dman=true _build
- cd _build
- ninja dist

View File

@ -1,4 +1,4 @@
FROM fedora:31
FROM fedora:33
RUN dnf -y install \
autoconf \
@ -64,7 +64,7 @@ RUN ./android-setup-env.sh arm64 21
RUN ./android-setup-env.sh arm64 28
RUN rm -rf $ANDROID_NDK_PATH
RUN pip3 install meson==0.49.2
RUN pip3 install meson==0.52.0
ARG HOST_USER_ID=5555
ENV HOST_USER_ID ${HOST_USER_ID}

View File

@ -1,9 +1,9 @@
FROM registry.gitlab.gnome.org/gnome/glib/fedora:v9
FROM registry.gitlab.gnome.org/gnome/glib/fedora:v12
ARG COVERITY_SCAN_PROJECT_NAME
ARG COVERITY_SCAN_TOKEN
RUN curl https://scan.coverity.com/download/linux64 \
RUN curl https://scan.coverity.com/download/cxx/linux64 \
-o /tmp/cov-analysis-linux64.tgz \
--form project="${COVERITY_SCAN_PROJECT_NAME}" \
--form token="${COVERITY_SCAN_TOKEN}" \

View File

@ -4,9 +4,12 @@ cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'
# Fedora builds GCC with --enable-default-ssp by default, but mingw64 puts its
# stack-protected functions in a separate library which needs to be linked
# explicitly, hence this flag.
[properties]
c_args = []
c_link_args = []
c_link_args = ['-fstack-protector']
[binaries]
c = 'x86_64-w64-mingw32-gcc'

View File

@ -1,11 +1,11 @@
FROM debian:buster
FROM debian:bullseye
RUN apt-get update -qq && apt-get install --no-install-recommends -qq -y \
bindfs \
black \
clang \
clang-tools-7 \
clang-format-7 \
clang-tools \
clang-format \
dbus \
desktop-file-utils \
elfutils \
@ -26,7 +26,7 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qq -y \
libffi-dev \
libgamin-dev \
libmount-dev \
libpcre2-dev \
libpcre3-dev \
libselinux1-dev \
libxml2-utils \
libxslt1-dev \
@ -66,7 +66,7 @@ RUN locale-gen de_DE.UTF-8 \
ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
RUN pip3 install meson==0.49.2
RUN pip3 install meson==0.52.0
ARG HOST_USER_ID=5555
ENV HOST_USER_ID ${HOST_USER_ID}

View File

@ -1,7 +1,4 @@
FROM fedora:31
# Set /etc/machine-id as its needed for some D-Bus tests
RUN systemd-machine-id-setup
FROM fedora:33
RUN dnf -y update \
&& dnf -y install \
@ -79,6 +76,9 @@ RUN dnf -y update \
RUN pip3 install meson==0.52.1
# Set /etc/machine-id as its needed for some D-Bus tests
RUN systemd-machine-id-setup
# Enable sudo for wheel users
RUN sed -i -e 's/# %wheel/%wheel/' -e '0,/%wheel/{s/%wheel/# %wheel/}' /etc/sudoers

View File

@ -1,4 +1,4 @@
FROM fedora:31
FROM fedora:33
RUN dnf -y install \
bindfs \
@ -58,7 +58,7 @@ RUN dnf -y install \
WORKDIR /opt
COPY cross_file_mingw64.txt /opt
RUN pip3 install meson==0.49.2
RUN pip3 install meson==0.52.0
ARG HOST_USER_ID=5555
ENV HOST_USER_ID ${HOST_USER_ID}

View File

@ -5,7 +5,7 @@ call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliar
@echo on
:: FIXME: make warnings fatal
pip3 install --upgrade --user meson==0.49.2 || goto :error
pip3 install --upgrade --user meson==0.52.0 || goto :error
meson _build || goto :error
ninja -C _build || goto :error

View File

@ -31,7 +31,7 @@ CCACHE_BASEDIR="$(pwd)"
CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
export CCACHE_BASEDIR CCACHE_DIR
pip3 install --upgrade --user meson==0.49.2
pip3 install --upgrade --user meson==0.52.0
PATH="$(cygpath "$USERPROFILE")/.local/bin:$HOME/.local/bin:$PATH"
CFLAGS="-coverage -ftest-coverage -fprofile-arcs"

View File

@ -448,19 +448,23 @@ gdb_conf = configuration_data()
gdb_conf.set('datadir', glib_datadir)
# This is also used in gobject/meson.build
if host_system != 'windows'
# XXX: We add a leading './' because glib_libdir is an absolute path and we
# need it to be a relative path so that join_paths appends it to the end.
gdb_install_dir = join_paths(glib_datadir, 'gdb', 'auto-load', './' + glib_libdir)
gdb_install = true
else
# FIXME: Cannot install on Windows because the path will contain a drive
# letter and colons are not allowed in paths.
gdb_install_dir = false
gdb_install = false
endif
# XXX: We add a leading './' because glib_libdir is an absolute path and we
# need it to be a relative path so that join_paths appends it to the end.
gdb_install_dir = join_paths(glib_datadir, 'gdb', 'auto-load', './' + glib_libdir)
configure_file(
input: 'libglib-gdb.py.in',
output: 'libglib-2.0.so.@0@-gdb.py'.format(library_version),
configuration: gdb_conf,
install_dir: gdb_install_dir,
install: gdb_install,
)
if enable_systemtap

View File

@ -159,6 +159,7 @@ configure_file(
output: 'libgobject-2.0.so.@0@-gdb.py'.format(library_version),
configuration: gdb_conf,
install_dir: gdb_install_dir,
install: gdb_install,
)
if enable_systemtap

View File

@ -1,7 +1,7 @@
project('glib', 'c', 'cpp',
version : '2.71.0',
# NOTE: We keep this pinned at 0.49 because that's what Debian 10 ships
meson_version : '>= 0.49.2',
# NOTE: We keep this pinned at 0.52 because that's what Debian Stable ships
meson_version : '>= 0.52.0',
default_options : [
'buildtype=debugoptimized',
'warning_level=1',