From a4f92f1605052246e9a28e74860cd6eb09716f1c Mon Sep 17 00:00:00 2001 From: Kentaro Hayashi Date: Fri, 5 Jun 2026 10:15:45 +0900 Subject: [PATCH 1/2] Backport(v6) ci: fixup broken mirrors (#1062) There is a case that mirrorlist is not available form master mirror site. This is rare case, but it happens. https://github.com/fluent/fluent-package-builder/actions/runs/26812024181/job/79058336020?pr=1028 https://github.com/fluent/fluent-package-builder/actions/runs/26812024181/job/79058337196?pr=1028 Signed-off-by: Kentaro Hayashi --- fluent-package/yum/systemd-test/common.sh | 47 +++++++++++++++++++ .../yum/systemd-test/downgrade-to-v4.sh | 2 + .../yum/systemd-test/downgrade-to-v5-lts.sh | 2 + .../downgrade-to-v6-lts-tmpfiles.sh | 2 + .../yum/systemd-test/elasticsearch.sh | 2 + .../yum/systemd-test/install-newly.sh | 2 + .../yum/systemd-test/obsolete-plugins.sh | 2 + fluent-package/yum/systemd-test/opensearch.sh | 2 + fluent-package/yum/systemd-test/tmpfiles.sh | 2 + .../yum/systemd-test/update-from-v4.sh | 2 + .../yum/systemd-test/update-from-v5-lts.sh | 2 + .../update-to-next-major-version.sh | 2 + .../update-to-next-version-service-status.sh | 2 + ...te-to-next-version-with-auto-and-manual.sh | 2 + ...ext-version-with-backward-compat-for-v4.sh | 2 + .../systemd-test/update-to-next-version.sh | 2 + .../systemd-test/update-without-data-lost.sh | 2 + 17 files changed, 79 insertions(+) diff --git a/fluent-package/yum/systemd-test/common.sh b/fluent-package/yum/systemd-test/common.sh index 4022ca1c..cd2c3a0c 100755 --- a/fluent-package/yum/systemd-test/common.sh +++ b/fluent-package/yum/systemd-test/common.sh @@ -152,3 +152,50 @@ function install_aws_cli() unzip awscliv2.zip sudo ./aws/install } + +function fixup_broken_mirrors() +{ + if [ "$DISTRIBUTION" = "amazon" ]; then + return 0 + fi + + # When mirrorlist in .repo is not accessible temporary, + # CI stops unexpectedly. This is last resort that I hope it will not fire. + if ! sudo $DNF repolist -v; then + # Avoid broken mirrorlist, enable baseurl explicitly + case $DISTRIBUTION_VERSION in + 8) + # install missing dnf-config-manager + FALLBACK_URL=https://ftp.iij.ad.jp/pub/linux/rocky + sudo $DNF install -y dnf-plugins-core --setopt=baseos.mirrorlist= \ + --setopt=baseos.baseurl=${FALLBACK_URL}/\$releasever/BaseOS/\$basearch/os/ + + sudo $DNF config-manager --setopt=baseos.mirrorlist= \ + --setopt=baseos.baseurl=${FALLBACK_URL}/\$releasever/BaseOS/\$basearch/os/ --save + sudo $DNF config-manager --setopt=appstream.mirrorlist= \ + --setopt=appstream.baseurl=${FALLBACK_URL}/\$releasever/AppStream/\$basearch/os/ --save + sudo $DNF config-manager --setopt=extras.mirrorlist= \ + --setopt=extras.baseurl=${FALLBACK_URL}/\$releasever/extras/\$basearch/os/ --save + ;; + 9|10*) + FALLBACK_URL=https://ftp.iij.ad.jp/pub/linux/almalinux + sudo $DNF config-manager --setopt=baseos.mirrorlist= \ + --setopt=baseos.baseurl=${FALLBACK_URL}/\$releasever/BaseOS/\$basearch/os/ --save + sudo $DNF config-manager --setopt=appstream.mirrorlist= \ + --setopt=appstream.baseurl=${FALLBACK_URL}/\$releasever/AppStream/\$basearch/os/ --save + sudo $DNF config-manager --setopt=extras.mirrorlist= \ + --setopt=extras.baseurl=${FALLBACK_URL}/\$releasever/extras/\$basearch/os/ --save + case $DISTRIBUTION_VERSION in + 10*) + sudo $DNF config-manager --setopt=crb.mirrorlist= \ + --setopt=crb.baseurl=${FALLBACK_URL}/\$releasever/CRB/\$basearch/os/ --save + ;; + esac + ;; + *) + echo "ERROR: unsupported $DISTRIBUTION $DISTRIBUTION_VERSION" + exit 1 + ;; + esac + fi +} diff --git a/fluent-package/yum/systemd-test/downgrade-to-v4.sh b/fluent-package/yum/systemd-test/downgrade-to-v4.sh index 2782cf3b..e09f23e8 100755 --- a/fluent-package/yum/systemd-test/downgrade-to-v4.sh +++ b/fluent-package/yum/systemd-test/downgrade-to-v4.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi install_v4 diff --git a/fluent-package/yum/systemd-test/downgrade-to-v5-lts.sh b/fluent-package/yum/systemd-test/downgrade-to-v5-lts.sh index b02fed9e..59d9be1a 100755 --- a/fluent-package/yum/systemd-test/downgrade-to-v5-lts.sh +++ b/fluent-package/yum/systemd-test/downgrade-to-v5-lts.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi # Install v5 LTS to register the repository diff --git a/fluent-package/yum/systemd-test/downgrade-to-v6-lts-tmpfiles.sh b/fluent-package/yum/systemd-test/downgrade-to-v6-lts-tmpfiles.sh index c00bd8c9..dc4ffd1e 100755 --- a/fluent-package/yum/systemd-test/downgrade-to-v6-lts-tmpfiles.sh +++ b/fluent-package/yum/systemd-test/downgrade-to-v6-lts-tmpfiles.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi # Display unit info for debug diff --git a/fluent-package/yum/systemd-test/elasticsearch.sh b/fluent-package/yum/systemd-test/elasticsearch.sh index 08d7b66c..1bc43769 100755 --- a/fluent-package/yum/systemd-test/elasticsearch.sh +++ b/fluent-package/yum/systemd-test/elasticsearch.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi GATEWAY=$(ip route | grep default | cut -d' ' -f3) diff --git a/fluent-package/yum/systemd-test/install-newly.sh b/fluent-package/yum/systemd-test/install-newly.sh index 2c3b9287..37458749 100755 --- a/fluent-package/yum/systemd-test/install-newly.sh +++ b/fluent-package/yum/systemd-test/install-newly.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi case $1 in diff --git a/fluent-package/yum/systemd-test/obsolete-plugins.sh b/fluent-package/yum/systemd-test/obsolete-plugins.sh index 8642eb28..6267a32b 100755 --- a/fluent-package/yum/systemd-test/obsolete-plugins.sh +++ b/fluent-package/yum/systemd-test/obsolete-plugins.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi install_current diff --git a/fluent-package/yum/systemd-test/opensearch.sh b/fluent-package/yum/systemd-test/opensearch.sh index 42495001..c2d2dd18 100755 --- a/fluent-package/yum/systemd-test/opensearch.sh +++ b/fluent-package/yum/systemd-test/opensearch.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi GATEWAY=$(ip route | grep default | cut -d' ' -f3) diff --git a/fluent-package/yum/systemd-test/tmpfiles.sh b/fluent-package/yum/systemd-test/tmpfiles.sh index 24e90ff2..66ff67d2 100755 --- a/fluent-package/yum/systemd-test/tmpfiles.sh +++ b/fluent-package/yum/systemd-test/tmpfiles.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi # Display unit info for debug diff --git a/fluent-package/yum/systemd-test/update-from-v4.sh b/fluent-package/yum/systemd-test/update-from-v4.sh index 8cf9ea7d..febd7ea7 100755 --- a/fluent-package/yum/systemd-test/update-from-v4.sh +++ b/fluent-package/yum/systemd-test/update-from-v4.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi testcase=${1:-directly} diff --git a/fluent-package/yum/systemd-test/update-from-v5-lts.sh b/fluent-package/yum/systemd-test/update-from-v5-lts.sh index d4ff1a25..133ba80c 100755 --- a/fluent-package/yum/systemd-test/update-from-v5-lts.sh +++ b/fluent-package/yum/systemd-test/update-from-v5-lts.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi install_v5_lts diff --git a/fluent-package/yum/systemd-test/update-to-next-major-version.sh b/fluent-package/yum/systemd-test/update-to-next-major-version.sh index 13e17c76..c5ae34ef 100755 --- a/fluent-package/yum/systemd-test/update-to-next-major-version.sh +++ b/fluent-package/yum/systemd-test/update-to-next-major-version.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi service_restart=$1 diff --git a/fluent-package/yum/systemd-test/update-to-next-version-service-status.sh b/fluent-package/yum/systemd-test/update-to-next-version-service-status.sh index f511e2a8..bad30702 100755 --- a/fluent-package/yum/systemd-test/update-to-next-version-service-status.sh +++ b/fluent-package/yum/systemd-test/update-to-next-version-service-status.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi enabled_before_update=$1 # enabled / disabled diff --git a/fluent-package/yum/systemd-test/update-to-next-version-with-auto-and-manual.sh b/fluent-package/yum/systemd-test/update-to-next-version-with-auto-and-manual.sh index 020db2b6..1427412e 100755 --- a/fluent-package/yum/systemd-test/update-to-next-version-with-auto-and-manual.sh +++ b/fluent-package/yum/systemd-test/update-to-next-version-with-auto-and-manual.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi package="/host/${distribution}/${DISTRIBUTION_VERSION}/x86_64/Packages/fluent-package-[0-9]*.rpm" diff --git a/fluent-package/yum/systemd-test/update-to-next-version-with-backward-compat-for-v4.sh b/fluent-package/yum/systemd-test/update-to-next-version-with-backward-compat-for-v4.sh index db1e92c5..d4822999 100755 --- a/fluent-package/yum/systemd-test/update-to-next-version-with-backward-compat-for-v4.sh +++ b/fluent-package/yum/systemd-test/update-to-next-version-with-backward-compat-for-v4.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi install_v4 diff --git a/fluent-package/yum/systemd-test/update-to-next-version.sh b/fluent-package/yum/systemd-test/update-to-next-version.sh index f917f85b..ec709daf 100755 --- a/fluent-package/yum/systemd-test/update-to-next-version.sh +++ b/fluent-package/yum/systemd-test/update-to-next-version.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi # Install the current diff --git a/fluent-package/yum/systemd-test/update-without-data-lost.sh b/fluent-package/yum/systemd-test/update-without-data-lost.sh index dda3d4b6..3c20ff8f 100755 --- a/fluent-package/yum/systemd-test/update-without-data-lost.sh +++ b/fluent-package/yum/systemd-test/update-without-data-lost.sh @@ -7,6 +7,8 @@ set -exu if [ "$distribution" = "amazon" ]; then sudo $DNF repolist -v sudo $DNF --releasever=latest update -y +else + fixup_broken_mirrors fi v6_package="/host/${distribution}/${DISTRIBUTION_VERSION}/x86_64/Packages/fluent-package-*.rpm" From 24ae128de2e3206ead6c3695a54a1e1b551ee97d Mon Sep 17 00:00:00 2001 From: Kentaro Hayashi Date: Fri, 5 Jun 2026 11:20:05 +0900 Subject: [PATCH 2/2] ci: ensure ready to use config-manager (#1064) Follow-up #1062 There was a case that config-manager is not instaled. https://github.com/fluent/fluent-package-builder/actions/runs/26989986882/job/79648097423 Signed-off-by: Kentaro Hayashi --- fluent-package/yum/systemd-test/common.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fluent-package/yum/systemd-test/common.sh b/fluent-package/yum/systemd-test/common.sh index cd2c3a0c..e93dc89d 100755 --- a/fluent-package/yum/systemd-test/common.sh +++ b/fluent-package/yum/systemd-test/common.sh @@ -179,6 +179,9 @@ function fixup_broken_mirrors() ;; 9|10*) FALLBACK_URL=https://ftp.iij.ad.jp/pub/linux/almalinux + sudo $DNF install -y dnf-plugins-core --setopt=baseos.mirrorlist= \ + --setopt=baseos.baseurl=${FALLBACK_URL}/\$releasever/BaseOS/\$basearch/os/ + sudo $DNF config-manager --setopt=baseos.mirrorlist= \ --setopt=baseos.baseurl=${FALLBACK_URL}/\$releasever/BaseOS/\$basearch/os/ --save sudo $DNF config-manager --setopt=appstream.mirrorlist= \