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:
Jan Vaclav
2024-02-05 13:59:50 +01:00
committed by Íñigo Huguet
parent 4c76d49f1f
commit 61f0531509
4 changed files with 80 additions and 34 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,6 +191,7 @@ run_autotools() {
\
#end
if [ "$CONFIGURE_ONLY" != 1 ]; then
make -j 6
make install
@@ -211,6 +212,7 @@ run_autotools() {
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,6 +264,7 @@ run_meson() {
export NM_TEST_CLIENT_CHECK_L10N=1
if [ "$CONFIGURE_ONLY" != 1 ]; then
ninja -C build -v
ninja -C build install
@@ -279,6 +282,7 @@ run_meson() {
die "meson+valgrind test failed"
fi
fi
fi
}
###############################################################################