merge: branch 'jv/test-dist-tarballs'

gitlab-ci: test re-buildability of distribution tarballs

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1862
This commit is contained in:
Íñigo Huguet 2024-03-01 07:56:24 +00:00
commit 14cad33baa
6 changed files with 105 additions and 49 deletions

View file

@ -57,11 +57,11 @@ variables:
#
# This is done by running `ci-fairy generate-template` and possibly bumping
# ".default_tag".
ALPINE_TAG: 'tag-7da44bbacc09'
CENTOS_TAG: 'tag-df11907da86a'
DEBIAN_TAG: 'tag-86a16c2d74d8'
FEDORA_TAG: 'tag-df11907da86a'
UBUNTU_TAG: 'tag-86a16c2d74d8'
ALPINE_TAG: 'tag-947df94197e7'
CENTOS_TAG: 'tag-2f354aa44865'
DEBIAN_TAG: 'tag-fb7953849851'
FEDORA_TAG: 'tag-2f354aa44865'
UBUNTU_TAG: 'tag-fb7953849851'
ALPINE_EXEC: 'bash .gitlab-ci/alpine-install.sh'
CENTOS_EXEC: 'bash .gitlab-ci/fedora-install.sh'
@ -391,6 +391,8 @@ t_fedora:39:
- meson+clang
- rpm+autotools
- rpm+meson
- tarball+autotools
- tarball+meson
- tarball
- subtree
variables:

View file

@ -157,6 +157,8 @@ t_{{distro.name}}:{{version}}:
- meson+clang
- rpm+autotools
- rpm+meson
- tarball+autotools
- tarball+meson
- tarball
- subtree
{% endif %}

View file

@ -63,6 +63,8 @@ check_run_assert() {
meson+clang
rpm+autotools
rpm+meson
tarball+autotools
tarball+meson
tarball
subtree
@ -127,6 +129,42 @@ if check_run_clean tarball && [ "$NM_BUILD_TARBALL" = 1 ]; then
do_clean
fi
if check_run_clean tarball+autotools; then
BUILD_TYPE=autotools CC=gcc WITH_DOCS=1 CONFIGURE_ONLY=1 contrib/scripts/nm-ci-run.sh
pushd ./build
# dist & build with autotools
make distcheck -j$(nproc)
# build with meson
DISTSRC="./distsrc-$RANDOM"
mkdir $DISTSRC
tar xvf ./NetworkManager-1*.tar.xz -C $DISTSRC --strip-components=1
pushd $DISTSRC
BUILD_TYPE=meson CC=gcc WITH_DOCS=1 ../../contrib/scripts/nm-ci-run.sh
popd
popd
do_clean
fi
if check_run_clean tarball+meson; then
BUILD_TYPE=meson CC=gcc WITH_DOCS=1 CONFIGURE_ONLY=1 contrib/scripts/nm-ci-run.sh
pushd ./build
# dist with meson
meson dist
# build with autotools
DISTSRC="./distsrc-$RANDOM"
mkdir $DISTSRC
tar xvf ./meson-dist/NetworkManager-1*.tar.xz -C $DISTSRC --strip-components=1
pushd $DISTSRC
BUILD_TYPE=autotools CC=gcc WITH_DOCS=1 ../../contrib/scripts/nm-ci-run.sh
popd
rm -rf $DISTSRC
popd
do_clean
fi
###############################################################################
test_subtree() {

View file

@ -191,24 +191,26 @@ run_autotools() {
\
#end
make -j 6
make install
if [ "$CONFIGURE_ONLY" != 1 ]; then
make -j 6
make install
export NM_TEST_CLIENT_CHECK_L10N=1
export NM_TEST_CLIENT_CHECK_L10N=1
if ! make check -j 6 -k ; then
_print_test_logs "first-test"
echo ">>>> RUN SECOND TEST (start)"
NMTST_DEBUG="debug,TRACE,no-expect-message" make check -k || :
echo ">>>> RUN SECOND TEST (done)"
_print_test_logs "second-test"
die "autotools test failed"
fi
if ! make check -j 6 -k ; then
_print_test_logs "first-test"
echo ">>>> RUN SECOND TEST (start)"
NMTST_DEBUG="debug,TRACE,no-expect-message" make check -k || :
echo ">>>> RUN SECOND TEST (done)"
_print_test_logs "second-test"
die "autotools test failed"
fi
if _with_valgrind; then
if ! NMTST_USE_VALGRIND=1 make check -j 3 -k ; then
_print_test_logs "(valgrind test)"
die "autotools+valgrind test failed"
if _with_valgrind; then
if ! NMTST_USE_VALGRIND=1 make check -j 3 -k ; then
_print_test_logs "(valgrind test)"
die "autotools+valgrind test failed"
fi
fi
fi
popd
@ -222,7 +224,7 @@ run_meson() {
else
_WITH_WERROR_VAL=""
fi
meson build \
meson setup build \
\
-Dprefix="$PWD/INST" \
\
@ -262,21 +264,23 @@ run_meson() {
export NM_TEST_CLIENT_CHECK_L10N=1
ninja -C build -v
ninja -C build install
if [ "$CONFIGURE_ONLY" != 1 ]; then
ninja -C build -v
ninja -C build install
if ! meson test -C build -v --print-errorlogs ; then
echo ">>>> RUN SECOND TEST (start)"
NMTST_DEBUG="debug,TRACE,no-expect-message" \
meson test -C build -v --print-errorlogs || :
echo ">>>> RUN SECOND TEST (done)"
die "meson test failed"
fi
if ! meson test -C build -v --print-errorlogs ; then
echo ">>>> RUN SECOND TEST (start)"
NMTST_DEBUG="debug,TRACE,no-expect-message" \
meson test -C build -v --print-errorlogs || :
echo ">>>> RUN SECOND TEST (done)"
die "meson test failed"
fi
if _with_valgrind; then
if ! NMTST_USE_VALGRIND=1 meson test -C build -v --print-errorlogs ; then
_print_test_logs "(valgrind test)"
die "meson+valgrind test failed"
if _with_valgrind; then
if ! NMTST_USE_VALGRIND=1 meson test -C build -v --print-errorlogs ; then
_print_test_logs "(valgrind test)"
die "meson+valgrind test failed"
fi
fi
fi
}

View file

@ -45,9 +45,11 @@ def show(c, ts=None):
" timeout: %u seconds%s"
% (
rt,
""
if ts is None
else (" (circa %s sec left)" % ((cr + (rt * 1000) - ts) / 1000.0)),
(
""
if ts is None
else (" (circa %s sec left)" % ((cr + (rt * 1000) - ts) / 1000.0))
),
)
)
print(

View file

@ -2329,12 +2329,16 @@ class IP4Config(ExportedObj):
a = {
"dest": Util.random_ip(seed, net="192.168.0.0/16")[0],
"prefix": Util.random_int(seed, 17, 32),
"next-hop": None
if (Util.random_int(seed) % 3 == 0)
else Util.random_ip(seed, net="192.168.0.0/16")[0],
"metric": -1
if (Util.random_int(seed) % 3 == 0)
else Util.random_int(seed, 0, 0xFFFFFFFF),
"next-hop": (
None
if (Util.random_int(seed) % 3 == 0)
else Util.random_ip(seed, net="192.168.0.0/16")[0]
),
"metric": (
-1
if (Util.random_int(seed) % 3 == 0)
else Util.random_int(seed, 0, 0xFFFFFFFF)
),
}
routes.append(a)
@ -2527,12 +2531,16 @@ class IP6Config(ExportedObj):
a = {
"dest": Util.random_ip(seed, net="2001:a::/64")[0],
"prefix": Util.random_int(seed, 65, 128),
"next-hop": None
if (Util.random_int(seed) % 3 == 0)
else Util.random_ip(seed, net="2001:a::/64")[0],
"metric": -1
if (Util.random_int(seed) % 3 == 0)
else Util.random_int(seed, 0, 0xFFFFFFFF),
"next-hop": (
None
if (Util.random_int(seed) % 3 == 0)
else Util.random_ip(seed, net="2001:a::/64")[0]
),
"metric": (
-1
if (Util.random_int(seed) % 3 == 0)
else Util.random_int(seed, 0, 0xFFFFFFFF)
),
}
routes.append(a)