qa/workunits: skip unpublished stable repos in test_repos.sh

Probe download.ceph.com before each stable add-repo and skip releases
that are not published for the current distro. This avoids apt/yum
failures on newer OS versions (e.g. Ubuntu 24.04/noble) where older
stable trees like quincy and reef were never published.

Fixes: http://tracker.ceph.com/issues/77248
Signed-off-by: Yael Azulay <yazulay@redhat.com>
This commit is contained in:
Yael Azulay 2026-06-30 21:33:48 +03:00
parent 1d7f80b43b
commit a691404841

View File

@ -30,16 +30,51 @@ function test_install_uninstall() {
sudo zypper -n remove cephadm )
}
sudo $CEPHADM -v add-repo --release quincy
test_install_uninstall
sudo $CEPHADM -v rm-repo
function test_release() {
local release=$1
sudo $CEPHADM -v add-repo --release "$release"
test_install_uninstall
sudo $CEPHADM -v rm-repo
}
REPO_URL="${REPO_URL:-https://download.ceph.com}"
function release_published() {
local release=$1
local base
if grep -q debian /etc/*-release; then
. /etc/os-release
base="${REPO_URL}/debian-${release}/dists/${VERSION_CODENAME}"
curl -sf -o /dev/null "${base}/InRelease" && return 0
curl -sf -o /dev/null "${base}/Release" && return 0
return 1
elif grep -q rhel /etc/*-release; then
. /etc/os-release
curl -sf -o /dev/null \
"${REPO_URL}/rpm-${release}/el${VERSION_ID%%.*}/noarch/repodata/repomd.xml"
else
return 1
fi
}
function test_release_if_published() {
local release=$1
if ! release_published "$release"; then
echo "Skipping release $release (not published for this distro)"
return 0
fi
test_release "$release"
}
sudo $CEPHADM -v add-repo --dev main
test_install_uninstall
sudo $CEPHADM -v rm-repo
sudo $CEPHADM -v add-repo --release 17.2.7
test_install_uninstall
sudo $CEPHADM -v rm-repo
test_release_if_published reef
test_release_if_published 18.2.8
test_release_if_published squid
test_release_if_published 19.2.4
test_release_if_published tentacle
echo OK.