summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Vaclav <jvaclav@redhat.com>2024-02-05 13:59:50 +0100
committerÍñigo Huguet <inigohuguet@hotmail.com>2024-03-01 07:51:21 +0000
commit61f0531509e5823dfedbc5c3181d56cbd4f45a34 (patch)
treea5bdacd56cee3fe23b85f2c975be57db735895eb
parent4c76d49f1f3addddc73ed16853c3c07da78208f1 (diff)
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
-rw-r--r--.gitlab-ci.yml12
-rw-r--r--.gitlab-ci/ci.template2
-rwxr-xr-x.gitlab-ci/run-test.sh38
-rwxr-xr-xcontrib/scripts/nm-ci-run.sh66
4 files changed, 82 insertions, 36 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 029284bfb5..eb48c9d1b4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -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:
diff --git a/.gitlab-ci/ci.template b/.gitlab-ci/ci.template
index 75606ec24d..f88c0a08a9 100644
--- a/.gitlab-ci/ci.template
+++ b/.gitlab-ci/ci.template
@@ -157,6 +157,8 @@ t_{{distro.name}}:{{version}}:
- meson+clang
- rpm+autotools
- rpm+meson
+ - tarball+autotools
+ - tarball+meson
- tarball
- subtree
{% endif %}
diff --git a/.gitlab-ci/run-test.sh b/.gitlab-ci/run-test.sh
index 758b8ada05..01f3b8bd10 100755
--- a/.gitlab-ci/run-test.sh
+++ b/.gitlab-ci/run-test.sh
@@ -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() {
diff --git a/contrib/scripts/nm-ci-run.sh b/contrib/scripts/nm-ci-run.sh
index f9d7cf00a8..e385ef1e8d 100755
--- a/contrib/scripts/nm-ci-run.sh
+++ b/contrib/scripts/nm-ci-run.sh
@@ -191,24 +191,26 @@ run_autotools() {
\
#end
- make -j 6
- make install
-
- 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 [ "$CONFIGURE_ONLY" != 1 ]; then
+ make -j 6
+ make install
+
+ 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 _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
}