diff options
author | Jan Vaclav <jvaclav@redhat.com> | 2024-02-05 13:59:50 +0100 |
---|---|---|
committer | Íñigo Huguet <inigohuguet@hotmail.com> | 2024-03-01 07:51:21 +0000 |
commit | 61f0531509e5823dfedbc5c3181d56cbd4f45a34 (patch) | |
tree | a5bdacd56cee3fe23b85f2c975be57db735895eb | |
parent | 4c76d49f1f3addddc73ed16853c3c07da78208f1 (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.yml | 12 | ||||
-rw-r--r-- | .gitlab-ci/ci.template | 2 | ||||
-rwxr-xr-x | .gitlab-ci/run-test.sh | 38 | ||||
-rwxr-xr-x | contrib/scripts/nm-ci-run.sh | 66 |
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 } |