mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-14 05:16:18 +01:00
Merge branch 'ci-update' into 'master'
Update the Docker images used for CI See merge request GNOME/glib!808
This commit is contained in:
commit
48b037fc3a
@ -1,5 +1,3 @@
|
|||||||
image: registry.gitlab.gnome.org/gnome/glib/master:v11
|
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- build
|
- build
|
||||||
- coverage
|
- coverage
|
||||||
@ -15,6 +13,7 @@ variables:
|
|||||||
MESON_COMMON_OPTIONS: "--buildtype debug --fatal-meson-warnings"
|
MESON_COMMON_OPTIONS: "--buildtype debug --fatal-meson-warnings"
|
||||||
|
|
||||||
fedora-x86_64:
|
fedora-x86_64:
|
||||||
|
image: registry.gitlab.gnome.org/gnome/glib/fedora:v1
|
||||||
stage: build
|
stage: build
|
||||||
except:
|
except:
|
||||||
- tags
|
- tags
|
||||||
@ -54,7 +53,37 @@ fedora-x86_64:
|
|||||||
- "_build/${CI_JOB_NAME}-report.xml"
|
- "_build/${CI_JOB_NAME}-report.xml"
|
||||||
- "_coverage"
|
- "_coverage"
|
||||||
|
|
||||||
|
debian-stable-x86_64:
|
||||||
|
image: registry.gitlab.gnome.org/gnome/glib/debian-stable:v1
|
||||||
|
stage: build
|
||||||
|
except:
|
||||||
|
- tags
|
||||||
|
script:
|
||||||
|
- meson ${MESON_COMMON_OPTIONS}
|
||||||
|
--werror
|
||||||
|
--default-library=both
|
||||||
|
--prefix=$HOME/glib-installed
|
||||||
|
--libdir=lib
|
||||||
|
-Dsystemtap=true
|
||||||
|
-Ddtrace=true
|
||||||
|
-Dfam=true
|
||||||
|
-Dinstalled_tests=true
|
||||||
|
_build
|
||||||
|
- ninja -C _build
|
||||||
|
- .gitlab-ci/run-tests.sh
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: "_build/${CI_JOB_NAME}-report.xml"
|
||||||
|
name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
|
||||||
|
when: always
|
||||||
|
paths:
|
||||||
|
- "_build/config.h"
|
||||||
|
- "_build/glib/glibconfig.h"
|
||||||
|
- "_build/meson-logs"
|
||||||
|
- "_build/${CI_JOB_NAME}-report.xml"
|
||||||
|
|
||||||
G_DISABLE_ASSERT:
|
G_DISABLE_ASSERT:
|
||||||
|
image: registry.gitlab.gnome.org/gnome/glib/fedora:v1
|
||||||
stage: build
|
stage: build
|
||||||
except:
|
except:
|
||||||
- tags
|
- tags
|
||||||
@ -93,6 +122,7 @@ G_DISABLE_ASSERT:
|
|||||||
|
|
||||||
cross-android_api21_arm64:
|
cross-android_api21_arm64:
|
||||||
<<: *cross-template
|
<<: *cross-template
|
||||||
|
image: registry.gitlab.gnome.org/gnome/glib/android-ndk:v1
|
||||||
script:
|
script:
|
||||||
# FIXME: add --werror
|
# FIXME: add --werror
|
||||||
# We use -Diconv=auto to test that we successfully detect that iconv is not
|
# We use -Diconv=auto to test that we successfully detect that iconv is not
|
||||||
@ -102,6 +132,7 @@ cross-android_api21_arm64:
|
|||||||
|
|
||||||
cross-android_api28_arm64:
|
cross-android_api28_arm64:
|
||||||
<<: *cross-template
|
<<: *cross-template
|
||||||
|
image: registry.gitlab.gnome.org/gnome/glib/android-ndk:v1
|
||||||
script:
|
script:
|
||||||
# FIXME: add --werror
|
# FIXME: add --werror
|
||||||
- meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_android_arm64_28.txt -Dinternal_pcre=true _build
|
- meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_android_arm64_28.txt -Dinternal_pcre=true _build
|
||||||
@ -109,6 +140,7 @@ cross-android_api28_arm64:
|
|||||||
|
|
||||||
cross-mingw64:
|
cross-mingw64:
|
||||||
<<: *cross-template
|
<<: *cross-template
|
||||||
|
image: registry.gitlab.gnome.org/gnome/glib/mingw:v1
|
||||||
script:
|
script:
|
||||||
# FIXME: Add --werror
|
# FIXME: Add --werror
|
||||||
- meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_mingw64.txt _build
|
- meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_mingw64.txt _build
|
||||||
@ -195,6 +227,7 @@ freebsd-11-x86_64:
|
|||||||
- "_build/${CI_JOB_NAME}-report.xml"
|
- "_build/${CI_JOB_NAME}-report.xml"
|
||||||
|
|
||||||
coverage:
|
coverage:
|
||||||
|
image: registry.gitlab.gnome.org/gnome/glib/fedora:v1
|
||||||
stage: coverage
|
stage: coverage
|
||||||
except:
|
except:
|
||||||
- tags
|
- tags
|
||||||
@ -217,6 +250,7 @@ pages:
|
|||||||
- public
|
- public
|
||||||
|
|
||||||
dist-job:
|
dist-job:
|
||||||
|
image: registry.gitlab.gnome.org/gnome/glib/fedora:v1
|
||||||
stage: build
|
stage: build
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
FROM fedora:27
|
FROM fedora:28
|
||||||
|
|
||||||
RUN dnf -y install \
|
RUN dnf -y install \
|
||||||
autoconf \
|
autoconf \
|
||||||
automake \
|
automake \
|
||||||
bindfs \
|
bindfs \
|
||||||
|
clang \
|
||||||
|
clang-analyzer \
|
||||||
desktop-file-utils \
|
desktop-file-utils \
|
||||||
elfutils-libelf-devel \
|
elfutils-libelf-devel \
|
||||||
findutils \
|
findutils \
|
||||||
@ -39,11 +41,6 @@ RUN dnf -y install \
|
|||||||
libtool \
|
libtool \
|
||||||
libxslt \
|
libxslt \
|
||||||
make \
|
make \
|
||||||
mingw64-gcc \
|
|
||||||
mingw64-gcc-c++ \
|
|
||||||
mingw64-gettext \
|
|
||||||
mingw64-libffi \
|
|
||||||
mingw64-zlib \
|
|
||||||
ncurses-compat-libs \
|
ncurses-compat-libs \
|
||||||
ninja-build \
|
ninja-build \
|
||||||
pcre-devel \
|
pcre-devel \
|
||||||
@ -66,8 +63,6 @@ RUN ./android-setup-env.sh arm64 21
|
|||||||
RUN ./android-setup-env.sh arm64 28
|
RUN ./android-setup-env.sh arm64 28
|
||||||
RUN rm -rf $ANDROID_NDK_PATH
|
RUN rm -rf $ANDROID_NDK_PATH
|
||||||
|
|
||||||
COPY cross_file_mingw64.txt /opt
|
|
||||||
|
|
||||||
RUN pip3 install meson==0.48.0
|
RUN pip3 install meson==0.48.0
|
||||||
|
|
||||||
ARG HOST_USER_ID=5555
|
ARG HOST_USER_ID=5555
|
73
.gitlab-ci/debian-stable.Dockerfile
Normal file
73
.gitlab-ci/debian-stable.Dockerfile
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
FROM debian:stretch
|
||||||
|
|
||||||
|
RUN apt-get update -qq && apt-get install --no-install-recommends -qq -y \
|
||||||
|
bindfs \
|
||||||
|
clang \
|
||||||
|
clang-tools-4.0 \
|
||||||
|
dbus \
|
||||||
|
desktop-file-utils \
|
||||||
|
elfutils \
|
||||||
|
findutils \
|
||||||
|
fuse \
|
||||||
|
gcc \
|
||||||
|
g++ \
|
||||||
|
gettext \
|
||||||
|
git \
|
||||||
|
libc6-dev \
|
||||||
|
gtk-doc-tools \
|
||||||
|
itstool \
|
||||||
|
lcov \
|
||||||
|
libattr1-dev \
|
||||||
|
libelf-dev \
|
||||||
|
libffi-dev \
|
||||||
|
libgamin-dev \
|
||||||
|
libmount-dev \
|
||||||
|
libpcre2-dev \
|
||||||
|
libselinux1-dev \
|
||||||
|
libxml2-utils \
|
||||||
|
libxslt1-dev \
|
||||||
|
libz3-dev \
|
||||||
|
locales \
|
||||||
|
ninja-build \
|
||||||
|
python3 \
|
||||||
|
python3-pip \
|
||||||
|
python3-setuptools \
|
||||||
|
python3-wheel \
|
||||||
|
shared-mime-info \
|
||||||
|
systemtap-sdt-dev \
|
||||||
|
unzip \
|
||||||
|
wget \
|
||||||
|
xsltproc \
|
||||||
|
xz-utils \
|
||||||
|
zlib1g-dev \
|
||||||
|
&& rm -rf /usr/share/doc/* /usr/share/man/*
|
||||||
|
|
||||||
|
# Locale for our build
|
||||||
|
RUN locale-gen C.UTF-8 && /usr/sbin/update-locale LANG=C.UTF-8
|
||||||
|
|
||||||
|
# Locales for our tests
|
||||||
|
RUN locale-gen de_DE.UTF-8 \
|
||||||
|
&& locale-gen el_GR.UTF-8 \
|
||||||
|
&& locale-gen en_US.UTF-8 \
|
||||||
|
&& locale-gen es_ES.UTF-8 \
|
||||||
|
&& locale-gen fa_IR.UTF-8 \
|
||||||
|
&& locale-gen fr_FR.UTF-8 \
|
||||||
|
&& locale-gen hr_HR.UTF-8 \
|
||||||
|
&& locale-gen ja_JP.UTF-8 \
|
||||||
|
&& locale-gen lt_LT.UTF-8 \
|
||||||
|
&& locale-gen pl_PL.UTF-8 \
|
||||||
|
&& locale-gen ru_RU.UTF-8 \
|
||||||
|
&& locale-gen tr_TR.UTF-8
|
||||||
|
|
||||||
|
ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
|
||||||
|
|
||||||
|
RUN pip3 install meson==0.48.0
|
||||||
|
|
||||||
|
ARG HOST_USER_ID=5555
|
||||||
|
ENV HOST_USER_ID ${HOST_USER_ID}
|
||||||
|
RUN useradd -u $HOST_USER_ID -ms /bin/bash user
|
||||||
|
|
||||||
|
USER user
|
||||||
|
WORKDIR /home/user
|
||||||
|
|
||||||
|
ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
|
64
.gitlab-ci/fedora.Dockerfile
Normal file
64
.gitlab-ci/fedora.Dockerfile
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
FROM fedora:29
|
||||||
|
|
||||||
|
RUN dnf -y install \
|
||||||
|
bindfs \
|
||||||
|
clang \
|
||||||
|
clang-analyzer \
|
||||||
|
dbus-daemon \
|
||||||
|
desktop-file-utils \
|
||||||
|
elfutils-libelf-devel \
|
||||||
|
findutils \
|
||||||
|
fuse \
|
||||||
|
gamin-devel \
|
||||||
|
gcc \
|
||||||
|
gcc-c++ \
|
||||||
|
gettext \
|
||||||
|
git \
|
||||||
|
glibc-devel \
|
||||||
|
glibc-headers \
|
||||||
|
glibc-langpack-de \
|
||||||
|
glibc-langpack-el \
|
||||||
|
glibc-langpack-el \
|
||||||
|
glibc-langpack-en \
|
||||||
|
glibc-langpack-es \
|
||||||
|
glibc-langpack-es \
|
||||||
|
glibc-langpack-fa \
|
||||||
|
glibc-langpack-fr \
|
||||||
|
glibc-langpack-hr \
|
||||||
|
glibc-langpack-ja \
|
||||||
|
glibc-langpack-lt \
|
||||||
|
glibc-langpack-pl \
|
||||||
|
glibc-langpack-ru \
|
||||||
|
glibc-langpack-tr \
|
||||||
|
gtk-doc \
|
||||||
|
itstool \
|
||||||
|
lcov \
|
||||||
|
libattr-devel \
|
||||||
|
libffi-devel \
|
||||||
|
libmount-devel \
|
||||||
|
libselinux-devel \
|
||||||
|
libxslt \
|
||||||
|
ncurses-compat-libs \
|
||||||
|
ninja-build \
|
||||||
|
pcre-devel \
|
||||||
|
python3 \
|
||||||
|
python3-pip \
|
||||||
|
python3-wheel \
|
||||||
|
shared-mime-info \
|
||||||
|
systemtap-sdt-devel \
|
||||||
|
unzip \
|
||||||
|
wget \
|
||||||
|
xz \
|
||||||
|
zlib-devel \
|
||||||
|
&& dnf clean all
|
||||||
|
|
||||||
|
RUN pip3 install meson==0.48.0
|
||||||
|
|
||||||
|
ARG HOST_USER_ID=5555
|
||||||
|
ENV HOST_USER_ID ${HOST_USER_ID}
|
||||||
|
RUN useradd -u $HOST_USER_ID -ms /bin/bash user
|
||||||
|
|
||||||
|
USER user
|
||||||
|
WORKDIR /home/user
|
||||||
|
|
||||||
|
ENV LANG C.UTF-8
|
70
.gitlab-ci/mingw.Dockerfile
Normal file
70
.gitlab-ci/mingw.Dockerfile
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
FROM fedora:29
|
||||||
|
|
||||||
|
RUN dnf -y install \
|
||||||
|
bindfs \
|
||||||
|
clang \
|
||||||
|
clang-analyzer \
|
||||||
|
desktop-file-utils \
|
||||||
|
elfutils-libelf-devel \
|
||||||
|
findutils \
|
||||||
|
fuse \
|
||||||
|
gamin-devel \
|
||||||
|
gcc \
|
||||||
|
gcc-c++ \
|
||||||
|
gettext \
|
||||||
|
git \
|
||||||
|
glibc-devel \
|
||||||
|
glibc-headers \
|
||||||
|
glibc-langpack-de \
|
||||||
|
glibc-langpack-el \
|
||||||
|
glibc-langpack-el \
|
||||||
|
glibc-langpack-en \
|
||||||
|
glibc-langpack-es \
|
||||||
|
glibc-langpack-es \
|
||||||
|
glibc-langpack-fa \
|
||||||
|
glibc-langpack-fr \
|
||||||
|
glibc-langpack-hr \
|
||||||
|
glibc-langpack-ja \
|
||||||
|
glibc-langpack-lt \
|
||||||
|
glibc-langpack-pl \
|
||||||
|
glibc-langpack-ru \
|
||||||
|
glibc-langpack-tr \
|
||||||
|
gtk-doc \
|
||||||
|
itstool \
|
||||||
|
lcov \
|
||||||
|
libattr-devel \
|
||||||
|
libffi-devel \
|
||||||
|
libmount-devel \
|
||||||
|
libselinux-devel \
|
||||||
|
libxslt \
|
||||||
|
mingw64-gcc \
|
||||||
|
mingw64-gcc-c++ \
|
||||||
|
mingw64-gettext \
|
||||||
|
mingw64-libffi \
|
||||||
|
mingw64-zlib \
|
||||||
|
ncurses-compat-libs \
|
||||||
|
ninja-build \
|
||||||
|
pcre-devel \
|
||||||
|
python3 \
|
||||||
|
python3-pip \
|
||||||
|
python3-wheel \
|
||||||
|
systemtap-sdt-devel \
|
||||||
|
unzip \
|
||||||
|
wget \
|
||||||
|
xz \
|
||||||
|
zlib-devel \
|
||||||
|
&& dnf clean all
|
||||||
|
|
||||||
|
WORKDIR /opt
|
||||||
|
COPY cross_file_mingw64.txt /opt
|
||||||
|
|
||||||
|
RUN pip3 install meson==0.48.0
|
||||||
|
|
||||||
|
ARG HOST_USER_ID=5555
|
||||||
|
ENV HOST_USER_ID ${HOST_USER_ID}
|
||||||
|
RUN useradd -u $HOST_USER_ID -ms /bin/bash user
|
||||||
|
|
||||||
|
USER user
|
||||||
|
WORKDIR /home/user
|
||||||
|
|
||||||
|
ENV LANG C.UTF-8
|
@ -1,18 +1,120 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
read_arg() {
|
||||||
|
# $1 = arg name
|
||||||
|
# $2 = arg value
|
||||||
|
# $3 = arg parameter
|
||||||
|
local rematch='^[^=]*=(.*)$'
|
||||||
|
if [[ $2 =~ $rematch ]]; then
|
||||||
|
read "$1" <<< "${BASH_REMATCH[1]}"
|
||||||
|
else
|
||||||
|
read "$1" <<< "$3"
|
||||||
|
# There is no way to shift our callers args, so
|
||||||
|
# return 1 to indicate they should do it instead.
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
TAG="registry.gitlab.gnome.org/gnome/glib/master:v11"
|
build=0
|
||||||
|
run=0
|
||||||
|
push=0
|
||||||
|
list=0
|
||||||
|
print_help=0
|
||||||
|
no_login=0
|
||||||
|
|
||||||
|
while (($# > 0)); do
|
||||||
|
case "${1%%=*}" in
|
||||||
|
build) build=1;;
|
||||||
|
run) run=1;;
|
||||||
|
push) push=1;;
|
||||||
|
list) list=1;;
|
||||||
|
help) print_help=1;;
|
||||||
|
--base|-b) read_arg base "$@" || shift;;
|
||||||
|
--base-version) read_arg base_version "$@" || shift;;
|
||||||
|
--no-login) no_login=1;;
|
||||||
|
*) echo -e "\e[1;31mERROR\e[0m: Unknown option '$1'"; exit 1;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $print_help == 1 ]; then
|
||||||
|
echo "$0 - Build and run Docker images"
|
||||||
|
echo ""
|
||||||
|
echo "Usage: $0 <command> [options] [basename]"
|
||||||
|
echo ""
|
||||||
|
echo "Available commands"
|
||||||
|
echo ""
|
||||||
|
echo " build --base=<BASENAME> - Build Docker image <BASENAME>.Dockerfile"
|
||||||
|
echo " run --base=<BASENAME> - Run Docker image <BASENAME>"
|
||||||
|
echo " push --base=<BASENAME> - Push Docker image <BASENAME> to the registry"
|
||||||
|
echo " list - List available images"
|
||||||
|
echo " help - This help message"
|
||||||
|
echo ""
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
docker build --build-arg HOST_USER_ID="$UID" --tag "${TAG}" \
|
|
||||||
--file "Dockerfile" .
|
|
||||||
|
|
||||||
if [ "$1" = "--push" ]; then
|
if [ $list == 1 ]; then
|
||||||
docker login registry.gitlab.gnome.org
|
echo "Available Docker images:"
|
||||||
docker push $TAG
|
for f in *.Dockerfile; do
|
||||||
else
|
filename=$( basename -- "$f" )
|
||||||
docker run --rm \
|
basename="${filename%.*}"
|
||||||
--volume "$(pwd)/..:/home/user/app" --workdir "/home/user/app" \
|
|
||||||
--tty --interactive "${TAG}" bash
|
echo -e " \e[1;39m$basename\e[0m"
|
||||||
|
done
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# All commands after this require --base to be set
|
||||||
|
if [ -z $base ]; then
|
||||||
|
echo "Usage: $0 <command>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$base.Dockerfile" ]; then
|
||||||
|
echo -e "\e[1;31mERROR\e[0m: Dockerfile for '$base' not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z $base_version ]; then
|
||||||
|
base_version="latest"
|
||||||
|
else
|
||||||
|
base_version="v$base_version"
|
||||||
|
fi
|
||||||
|
|
||||||
|
TAG="registry.gitlab.gnome.org/gnome/glib/${base}:${base_version}"
|
||||||
|
|
||||||
|
if [ $build == 1 ]; then
|
||||||
|
echo -e "\e[1;32mBUILDING\e[0m: ${base} as ${TAG}"
|
||||||
|
sudo docker build \
|
||||||
|
--build-arg HOST_USER_ID="$UID" \
|
||||||
|
--tag "${TAG}" \
|
||||||
|
--file "${base}.Dockerfile" .
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $push == 1 ]; then
|
||||||
|
echo -e "\e[1;32mPUSHING\e[0m: ${base} as ${TAG}"
|
||||||
|
|
||||||
|
if [ $no_login == 0 ]; then
|
||||||
|
sudo docker login registry.gitlab.gnome.org
|
||||||
|
fi
|
||||||
|
|
||||||
|
sudo docker push $TAG
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $run == 1 ]; then
|
||||||
|
echo -e "\e[1;32mRUNNING\e[0m: ${base} as ${TAG}"
|
||||||
|
sudo docker run \
|
||||||
|
--rm \
|
||||||
|
--volume "$(pwd)/..:/home/user/app" \
|
||||||
|
--workdir "/home/user/app" \
|
||||||
|
--tty \
|
||||||
|
--interactive "${TAG}" \
|
||||||
|
bash
|
||||||
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
@ -56,7 +56,9 @@
|
|||||||
*
|
*
|
||||||
* ...and still compile successfully when -Werror=duplicated-branches is passed. */
|
* ...and still compile successfully when -Werror=duplicated-branches is passed. */
|
||||||
|
|
||||||
|
#if defined(__GNUC__) && __GNUC__ > 6
|
||||||
#pragma GCC diagnostic ignored "-Wduplicated-branches"
|
#pragma GCC diagnostic ignored "-Wduplicated-branches"
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SECTION:hash_tables
|
* SECTION:hash_tables
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/* We test for errors in optimize-only definitions in gmem.h */
|
/* We test for errors in optimize-only definitions in gmem.h */
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#if defined(__GNUC__) && __GNUC__ > 6
|
||||||
#pragma GCC optimize (1)
|
#pragma GCC optimize (1)
|
||||||
#pragma GCC diagnostic push
|
#pragma GCC diagnostic push
|
||||||
#pragma GCC diagnostic ignored "-Walloc-size-larger-than="
|
#pragma GCC diagnostic ignored "-Walloc-size-larger-than="
|
||||||
|
Loading…
Reference in New Issue
Block a user