diff --git a/.github/workflows/actions.lock b/.github/workflows/actions.lock index 5c3ad593..50cd4d9e 100644 --- a/.github/workflows/actions.lock +++ b/.github/workflows/actions.lock @@ -106,7 +106,7 @@ dependencies: repo_id: 259445878 'linux-system-roles/.github@main': ref: 'main' - commit: 'sha1-038468a64a784796a0202d5c9c714f27ec2cc2c4' + commit: 'sha1-cfa9bc3ff2917d6866ad85d1b22b2f32e4a6c210' owner_id: 28014670 repo_id: 320092621 'sclorg/testing-farm-as-github-action@v4.3.1': diff --git a/plans/test_playbooks_parallel.fmf b/plans/test_playbooks_parallel.fmf index 2793c440..06a2d615 100644 --- a/plans/test_playbooks_parallel.fmf +++ b/plans/test_playbooks_parallel.fmf @@ -49,6 +49,43 @@ prepare: order: 10 script: | sed -i -e 's|\.lab\.bos\.|.devel.|g' -e 's|\.eng\.bos\.|.devel.|g' /etc/yum.repos.d/*.repo + - name: Install package_retry on CentOS 7 and 8 + how: shell + # Generated by Codex model Astra 6 low + # Install before EPEL setup and package installation during prepare. + order: 5 + script: | + set -eu + # shellcheck disable=SC1091 + . /etc/os-release + case "${ID}:${VERSION_ID%%.*}" in + centos:7) + plugin_dir=/usr/lib/yum-plugins + plugin_conf_dir=/etc/yum/pluginconf.d + ;; + centos:8) + # determine system site-packages plugin directory + plugin_dir=$(/usr/libexec/platform-python -c 'import sysconfig; print(sysconfig.get_path("purelib") + "/dnf-plugins")') + plugin_conf_dir=/etc/dnf/plugins + ;; + *) exit 0 ;; + esac + # Pin the latest main-branch commit as of 2026-10-29. + revision=cc5725137899d99a3624d88bf491f7e1e455a9d7 + source_url="https://raw.githubusercontent.com/linux-system-roles/auto-maintenance/${revision}/package_retry" + download_dir=$(mktemp -d) + trap 'rm -rf "$download_dir"' EXIT + for file in package_retry.py package_retry.conf; do + curl --fail --location --silent --show-error --retry 5 --retry-delay 5 \ + --connect-timeout 30 --max-time 120 \ + --output "$download_dir/$file" "$source_url/$file" + done + install -d -m 0755 "$plugin_dir" "$plugin_conf_dir" + install -m 0644 "$download_dir/package_retry.py" "$plugin_dir/package_retry.py" + # Retry after 5, 10, 20, 40, and 80 seconds. + sed -i -e 's/^retries = .*/retries = 5/' \ + -e 's/^strategy = .*/strategy = exponential/' "$download_dir/package_retry.conf" + install -m 0644 "$download_dir/package_retry.conf" "$plugin_conf_dir/package_retry.conf" discover: - name: Prepare managed node how: fmf