gitlab-ci: test re-buildability of distribution tarballs
Adds tests for making a distribution tarball, and then attempting to build NM from its contents. Files have been left out from the distribution in the past by accident (e.g.75027879
,b2931c96
) and hopefully this test will catch this type of errors. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1862
This commit is contained in:
@@ -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:
|
||||
|
@@ -157,6 +157,8 @@ t_{{distro.name}}:{{version}}:
|
||||
- meson+clang
|
||||
- rpm+autotools
|
||||
- rpm+meson
|
||||
- tarball+autotools
|
||||
- tarball+meson
|
||||
- tarball
|
||||
- subtree
|
||||
{% endif %}
|
||||
|
@@ -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() {
|
||||
|
@@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user