fix(ci): make release retryable

This commit is contained in:
justme committed 2026-10-05 01:21:37 +08:00
1 parent ce30828ed3
commit 8aaa574485
2 files changed
+20 -6

No files matched your search

+10 -4
View File
@@ -97,10 +97,16 @@ trap cleanup EXIT
upload_package() {
local file="$1" name
name="$(basename "$file")"
curl --fail-with-body --retry 3 --netrc-file "$netrc" \
local status
status="$(curl --silent --show-error --retry 3 --netrc-file "$netrc" \
--upload-file "$file" \
"$gitea_base/api/packages/justme/generic/monitor-node/$version/$name" >/dev/null
echo "uploaded Gitea package $name"
--output /dev/null --write-out '%{http_code}' \
"$gitea_base/api/packages/justme/generic/monitor-node/$version/$name")"
case "$status" in
2*) echo "uploaded Gitea package $name" ;;
409) echo "Gitea package $name already exists; reusing the existing release file" ;;
*) echo "Gitea package upload failed for $name (HTTP $status)" >&2; return 1 ;;
esac
}
package_node agent
@@ -111,7 +117,7 @@ package_node probe
container_context="$root/.release/container/linux-$arch"
mkdir -p "$container_context/app" "$container_context/data"
cp -a "$output/backend/." "$container_context/app/"
cp "$root/packaging/container/data/.keep" "$container_context/data/.keep"
: > "$container_context/data/.keep"
export REGISTRY_AUTH_FILE="$root/.release/auth/zot-linux-$arch.json"
mkdir -p "$(dirname "$REGISTRY_AUTH_FILE")"
+10 -2
View File
@@ -101,11 +101,19 @@ function Publish-Package([string]$Role, [string]$BinaryDirectory) {
foreach ($file in @($archive, $checksumPath)) {
$name = Split-Path -Leaf $file
$url = "$giteaBase/api/packages/justme/generic/monitor-node/$version/$name"
& curl.exe --fail-with-body --retry 3 --netrc-file $netrc --upload-file $file $url
$status = & curl.exe --silent --show-error --retry 3 --netrc-file $netrc --upload-file $file --output NUL --write-out '%{http_code}' $url
if ($LASTEXITCODE -ne 0) {
throw "Gitea package upload failed for $name."
}
Write-Output "uploaded Gitea package $name"
if ($status -match '^2') {
Write-Output "uploaded Gitea package $name"
}
elseif ($status -eq '409') {
Write-Output "Gitea package $name already exists; reusing the existing release file"
}
else {
throw "Gitea package upload failed for $name (HTTP $status)."
}
}
}