rebuild when Alpine registry index is absent
Build Alpine Packages / preflight (pull_request) Successful in 4s
Build Alpine Packages / build (gitea) (pull_request) Successful in 52s
Build Alpine Packages / build (greptimedb) (pull_request) Successful in 1h16m48s
Build Alpine Packages / build (lavinmq) (pull_request) Successful in 2m28s
Build Alpine Packages / build (nifi) (pull_request) Successful in 3m46s
Build Alpine Packages / build (rclone-openrc) (pull_request) Successful in 11s
Build Alpine Packages / build (seaweedfs) (pull_request) Successful in 39m19s
Build Alpine Packages / verify-and-publish (pull_request) Failing after 4m11s

This commit is contained in:
Joachim Schlöffel
2026-10-08 10:47:21 +02:00
parent 7a9916ea17
commit 16197f7a6c
+18 -3
View File
@@ -30,16 +30,30 @@ registry_key_url() {
} }
download_registry_metadata() { download_registry_metadata() {
local arch url key_dir local arch url key_dir http_status
require_registry_config INSTANCE_URL "${instance_url}" require_registry_config INSTANCE_URL "${instance_url}"
require_registry_config PACKAGE_OWNER "${owner}" require_registry_config PACKAGE_OWNER "${owner}"
declare -gA registry_index_available=()
mkdir -p "${registry_cache}" mkdir -p "${registry_cache}"
url="$(registry_url)" url="$(registry_url)"
for arch in ${arches}; do for arch in ${arches}; do
curl --fail --silent --show-error --location \ if http_status="$(curl --fail --silent --location \
--output "${registry_cache}/${arch}.APKINDEX.tar.gz" \ --output "${registry_cache}/${arch}.APKINDEX.tar.gz" \
"${url}/${arch}/APKINDEX.tar.gz" --write-out '%{http_code}' \
"${url}/${arch}/APKINDEX.tar.gz")"; then
registry_index_available["${arch}"]=1
continue
fi
if [[ "${http_status}" == 404 ]]; then
registry_index_available["${arch}"]=0
printf 'Registry index is absent: %s/%s/APKINDEX.tar.gz; treating it as empty\n' \
"${url}" "${arch}" >&2
continue
fi
printf 'failed to download registry index (%s): %s/%s/APKINDEX.tar.gz\n' \
"${http_status:-curl error}" "${url}" "${arch}" >&2
return 1
done done
key_dir="${registry_cache}/keys" key_dir="${registry_cache}/keys"
mkdir -p "${key_dir}" mkdir -p "${key_dir}"
@@ -59,6 +73,7 @@ load_registry_index() {
declare -gA registry_latest_versions=() declare -gA registry_latest_versions=()
for arch in ${arches}; do for arch in ${arches}; do
[[ "${registry_index_available[${arch}]:-0}" == 1 ]] || continue
while IFS=$'\t' read -r package_name package_version; do while IFS=$'\t' read -r package_name package_version; do
[[ -n "${package_name}" && -n "${package_version}" ]] || continue [[ -n "${package_name}" && -n "${package_version}" ]] || continue
registry_key="${arch}|${package_name}" registry_key="${arch}|${package_name}"