merge: branch 'ih/glci-testlog-artifact'
CI: various improvements https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2048
This commit is contained in:
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
|
|
||||||
# see https://docs.gitlab.com/ee/ci/yaml/#includefile
|
# see https://docs.gitlab.com/ee/ci/yaml/#includefile
|
||||||
.templates_sha: &template_sha 98b1218f146a1ec96d65e3ce0041f9a6ec5cb5e6
|
.templates_sha: &template_sha 593a0a5fe35a523a646a7efae5471c9759b8fba3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -60,11 +60,11 @@ variables:
|
|||||||
#
|
#
|
||||||
# This is done by running `ci-fairy generate-template` and possibly bumping
|
# This is done by running `ci-fairy generate-template` and possibly bumping
|
||||||
# ".default_tag".
|
# ".default_tag".
|
||||||
ALPINE_TAG: 'tag-759073a4a7c5'
|
ALPINE_TAG: 'tag-0959c37ef19b'
|
||||||
CENTOS_TAG: 'tag-8e3ebf909439'
|
CENTOS_TAG: 'tag-70ac400f2325'
|
||||||
DEBIAN_TAG: 'tag-529c288644bc'
|
DEBIAN_TAG: 'tag-c03f6a5793ce'
|
||||||
FEDORA_TAG: 'tag-8e3ebf909439'
|
FEDORA_TAG: 'tag-70ac400f2325'
|
||||||
UBUNTU_TAG: 'tag-529c288644bc'
|
UBUNTU_TAG: 'tag-c03f6a5793ce'
|
||||||
|
|
||||||
ALPINE_EXEC: 'bash .gitlab-ci/alpine-install.sh'
|
ALPINE_EXEC: 'bash .gitlab-ci/alpine-install.sh'
|
||||||
CENTOS_EXEC: 'bash .gitlab-ci/fedora-install.sh'
|
CENTOS_EXEC: 'bash .gitlab-ci/fedora-install.sh'
|
||||||
@@ -83,6 +83,7 @@ variables:
|
|||||||
- NetworkManager-1*.tar.xz
|
- NetworkManager-1*.tar.xz
|
||||||
- NetworkManager-1*.src.rpm
|
- NetworkManager-1*.src.rpm
|
||||||
- nm-test.log
|
- nm-test.log
|
||||||
|
- testlog.txt
|
||||||
|
|
||||||
.nm_artifacts_debug:
|
.nm_artifacts_debug:
|
||||||
artifacts:
|
artifacts:
|
||||||
@@ -90,6 +91,7 @@ variables:
|
|||||||
when: always
|
when: always
|
||||||
paths:
|
paths:
|
||||||
- nm-test.log
|
- nm-test.log
|
||||||
|
- testlog.txt
|
||||||
|
|
||||||
#################################################################
|
#################################################################
|
||||||
# #
|
# #
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
|
|
||||||
# see https://docs.gitlab.com/ee/ci/yaml/#includefile
|
# see https://docs.gitlab.com/ee/ci/yaml/#includefile
|
||||||
.templates_sha: &template_sha 98b1218f146a1ec96d65e3ce0041f9a6ec5cb5e6
|
.templates_sha: &template_sha 593a0a5fe35a523a646a7efae5471c9759b8fba3
|
||||||
|
|
||||||
{# Group distros by their common (name,) tuples.#}
|
{# Group distros by their common (name,) tuples.#}
|
||||||
{% set distro_groups = [] %}
|
{% set distro_groups = [] %}
|
||||||
@@ -88,6 +88,7 @@ variables:
|
|||||||
- NetworkManager-1*.tar.xz
|
- NetworkManager-1*.tar.xz
|
||||||
- NetworkManager-1*.src.rpm
|
- NetworkManager-1*.src.rpm
|
||||||
- nm-test.log
|
- nm-test.log
|
||||||
|
- testlog.txt
|
||||||
|
|
||||||
.nm_artifacts_debug:
|
.nm_artifacts_debug:
|
||||||
artifacts:
|
artifacts:
|
||||||
@@ -95,6 +96,7 @@ variables:
|
|||||||
when: always
|
when: always
|
||||||
paths:
|
paths:
|
||||||
- nm-test.log
|
- nm-test.log
|
||||||
|
- testlog.txt
|
||||||
|
|
||||||
#################################################################
|
#################################################################
|
||||||
# #
|
# #
|
||||||
|
@@ -72,4 +72,4 @@ distributions:
|
|||||||
- '3.20'
|
- '3.20'
|
||||||
- '3.19'
|
- '3.19'
|
||||||
- '3.18'
|
- '3.18'
|
||||||
- '3.17'
|
- '3.17'
|
@@ -9,8 +9,9 @@ fedora:
|
|||||||
support: yes
|
support: yes
|
||||||
nm: main
|
nm: main
|
||||||
- version: 41
|
- version: 41
|
||||||
support: yes
|
support: 2025-11-19
|
||||||
nm: 1.50
|
nm: 1.50
|
||||||
|
tier1-default: yes
|
||||||
- version: 40
|
- version: 40
|
||||||
support: 2025-05-13
|
support: 2025-05-13
|
||||||
nm: 1.46
|
nm: 1.46
|
||||||
|
@@ -124,7 +124,20 @@ for distro, versions in distros_info.items():
|
|||||||
|
|
||||||
# Select a Tier1 distro
|
# Select a Tier1 distro
|
||||||
tier1_distro, tier1_version = "", ""
|
tier1_distro, tier1_version = "", ""
|
||||||
|
|
||||||
|
for fed_ver_info in distros_info["fedora"]:
|
||||||
|
# We prefer the Fedora version marked as tier1-default
|
||||||
|
if fed_ver_info.get("tier1-default", False):
|
||||||
|
for tier in (tier2, tier3):
|
||||||
|
if fed_ver_info["version"] in tier.get("fedora", []):
|
||||||
|
tier1_distro = "fedora"
|
||||||
|
tier1_version = fed_ver_info["version"]
|
||||||
|
tier["fedora"].remove(fed_ver_info["version"])
|
||||||
|
|
||||||
for distro in ci_distros:
|
for distro in ci_distros:
|
||||||
|
if tier1_distro:
|
||||||
|
break
|
||||||
|
|
||||||
for tier in (tier2, tier3):
|
for tier in (tier2, tier3):
|
||||||
if distro in tier:
|
if distro in tier:
|
||||||
# Exception: we want to use fedora:latest instead of fedora:rawhide because
|
# Exception: we want to use fedora:latest instead of fedora:rawhide because
|
||||||
@@ -142,8 +155,6 @@ for distro in ci_distros:
|
|||||||
if not tier[distro]:
|
if not tier[distro]:
|
||||||
del tier[distro]
|
del tier[distro]
|
||||||
break
|
break
|
||||||
if tier1_distro:
|
|
||||||
break
|
|
||||||
|
|
||||||
if not tier1_distro or not tier1_version:
|
if not tier1_distro or not tier1_version:
|
||||||
print("Warn: no suitable distro for Tier 1 found", file=sys.stderr)
|
print("Warn: no suitable distro for Tier 1 found", file=sys.stderr)
|
||||||
|
@@ -50,7 +50,7 @@ meson --version
|
|||||||
export NMTST_SKIP_CHECK_GITLAB_CI=1
|
export NMTST_SKIP_CHECK_GITLAB_CI=1
|
||||||
|
|
||||||
# Assert that "$1" is one of the valid values for NM_TEST_SELECT_RUN. die() otherwise.
|
# Assert that "$1" is one of the valid values for NM_TEST_SELECT_RUN. die() otherwise.
|
||||||
check_run_assert() {
|
is_run_selected_assert() {
|
||||||
{ set +x; } 2>/dev/null
|
{ set +x; } 2>/dev/null
|
||||||
local run="$1"
|
local run="$1"
|
||||||
local a
|
local a
|
||||||
@@ -83,45 +83,54 @@ check_run_assert() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[ -z "$NM_TEST_SELECT_RUN" ] && NM_TEST_SELECT_RUN=all
|
[ -z "$NM_TEST_SELECT_RUN" ] && NM_TEST_SELECT_RUN=all
|
||||||
check_run_assert "$NM_TEST_SELECT_RUN"
|
is_run_selected_assert "$NM_TEST_SELECT_RUN"
|
||||||
|
|
||||||
check_run() {
|
is_run_selected() {
|
||||||
local test_no="$1"
|
local run="$1"
|
||||||
|
|
||||||
check_run_assert "$test_no"
|
is_run_selected_assert "$run"
|
||||||
|
|
||||||
# Usually, we run the build several times. However, for testing
|
# Usually, we run the build several times. However, for testing
|
||||||
# the build script manually, it can be useful to explicitly select
|
# the build script manually, it can be useful to explicitly select
|
||||||
# one step to run. For example, if step 3 is known to fail, you
|
# one step to run. For example, if step 3 is known to fail, you
|
||||||
# can still manually run step A by setting NM_TEST_SELECT_RUN=A.
|
# can still manually run step A by setting NM_TEST_SELECT_RUN=A.
|
||||||
|
|
||||||
test "$NM_TEST_SELECT_RUN" = all -o "$NM_TEST_SELECT_RUN" = "$test_no"
|
test "$NM_TEST_SELECT_RUN" = all -o "$NM_TEST_SELECT_RUN" = "$run"
|
||||||
}
|
}
|
||||||
|
|
||||||
check_run_clean() {
|
die_with_testlog() {
|
||||||
if ! check_run "$1" ; then
|
mv ./build/meson-logs/testlog.txt ./testlog.txt
|
||||||
return 1
|
exit 1
|
||||||
fi
|
}
|
||||||
|
|
||||||
|
if is_run_selected meson+gcc+docs+valgrind ; then
|
||||||
do_clean
|
do_clean
|
||||||
return 0
|
CC=gcc WITH_DOCS=1 WITH_VALGRIND=1 contrib/scripts/nm-ci-run.sh || die_with_testlog
|
||||||
}
|
|
||||||
|
|
||||||
if check_run_clean meson+gcc+docs+valgrind ; then
|
|
||||||
CC=gcc WITH_DOCS=1 WITH_VALGRIND=1 contrib/scripts/nm-ci-run.sh
|
|
||||||
mv INST/share/gtk-doc/html "$ARTIFACT_DIR/docs-html"
|
mv INST/share/gtk-doc/html "$ARTIFACT_DIR/docs-html"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
check_run_clean meson+clang && CC=clang WITH_DOCS=0 contrib/scripts/nm-ci-run.sh
|
if is_run_selected meson+clang; then
|
||||||
check_run_clean rpm+meson && test $IS_FEDORA = 1 && ./contrib/fedora/rpm/build_clean.sh -g -w crypto_gnutls -w debug -w iwd -w test -w meson
|
do_clean
|
||||||
|
CC=clang WITH_DOCS=0 contrib/scripts/nm-ci-run.sh || die_with_testlog
|
||||||
|
fi
|
||||||
|
|
||||||
if check_run_clean tarball && [ "$NM_BUILD_TARBALL" = 1 ]; then
|
if is_run_selected rpm+meson; then
|
||||||
SIGN_SOURCE=0 ./contrib/fedora/rpm/build_clean.sh -r
|
do_clean
|
||||||
|
test $IS_FEDORA = 1 && ./contrib/fedora/rpm/build_clean.sh -g -w crypto_gnutls -w debug -w iwd -w test -w meson || die_with_testlog
|
||||||
|
fi
|
||||||
|
|
||||||
|
if is_run_selected tarball && [ "$NM_BUILD_TARBALL" = 1 ]; then
|
||||||
|
do_clean
|
||||||
|
SIGN_SOURCE=0 ./contrib/fedora/rpm/build_clean.sh -r || die_with_testlog
|
||||||
mv ./build/meson-dist/NetworkManager-1*.tar.xz "$ARTIFACT_DIR/"
|
mv ./build/meson-dist/NetworkManager-1*.tar.xz "$ARTIFACT_DIR/"
|
||||||
mv ./contrib/fedora/rpm/latest/SRPMS/NetworkManager-1*.src.rpm "$ARTIFACT_DIR/"
|
mv ./contrib/fedora/rpm/latest/SRPMS/NetworkManager-1*.src.rpm "$ARTIFACT_DIR/"
|
||||||
do_clean
|
do_clean
|
||||||
fi
|
fi
|
||||||
|
|
||||||
check_run_clean tarball+meson && CC=gcc WITH_DOCS=1 CONFIGURE_ONLY=1 contrib/scripts/nm-ci-run.sh
|
if is_run_selected tarball+meson; then
|
||||||
|
do_clean
|
||||||
|
CC=gcc WITH_DOCS=1 CONFIGURE_ONLY=1 contrib/scripts/nm-ci-run.sh || die_with_testlog
|
||||||
|
fi
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
@@ -148,7 +157,8 @@ test_subtree() {
|
|||||||
popd
|
popd
|
||||||
}
|
}
|
||||||
|
|
||||||
if check_run_clean subtree; then
|
if is_run_selected subtree; then
|
||||||
|
do_clean
|
||||||
for d in c-list c-rbtree c-siphash c-stdaux n-acd n-dhcp4 ; do
|
for d in c-list c-rbtree c-siphash c-stdaux n-acd n-dhcp4 ; do
|
||||||
for cc in gcc clang; do
|
for cc in gcc clang; do
|
||||||
test_subtree "$d" "$cc"
|
test_subtree "$d" "$cc"
|
||||||
@@ -160,10 +170,10 @@ fi
|
|||||||
|
|
||||||
if [ "$NM_BUILD_TARBALL" = 1 ]; then
|
if [ "$NM_BUILD_TARBALL" = 1 ]; then
|
||||||
do_clean
|
do_clean
|
||||||
if check_run meson+gcc+docs+valgrind ; then
|
if is_run_selected meson+gcc+docs+valgrind ; then
|
||||||
mv "$ARTIFACT_DIR/docs-html/" ./
|
mv "$ARTIFACT_DIR/docs-html/" ./
|
||||||
fi
|
fi
|
||||||
if check_run tarball ; then
|
if is_run_selected tarball ; then
|
||||||
mv \
|
mv \
|
||||||
"$ARTIFACT_DIR"/NetworkManager-1*.tar.xz \
|
"$ARTIFACT_DIR"/NetworkManager-1*.tar.xz \
|
||||||
"$ARTIFACT_DIR"/NetworkManager-1*.src.rpm \
|
"$ARTIFACT_DIR"/NetworkManager-1*.src.rpm \
|
||||||
|
Reference in New Issue
Block a user