fix(ci): make release retryable
This commit is contained in:
1 parent
ce30828ed3
commit
8aaa574485
2 files changed
+20
-6
No files matched your search
+10
-4
@@ -97,10 +97,16 @@ trap cleanup EXIT
|
|||||||
upload_package() {
|
upload_package() {
|
||||||
local file="$1" name
|
local file="$1" name
|
||||||
name="$(basename "$file")"
|
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" \
|
--upload-file "$file" \
|
||||||
"$gitea_base/api/packages/justme/generic/monitor-node/$version/$name" >/dev/null
|
--output /dev/null --write-out '%{http_code}' \
|
||||||
echo "uploaded Gitea package $name"
|
"$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
|
package_node agent
|
||||||
@@ -111,7 +117,7 @@ package_node probe
|
|||||||
container_context="$root/.release/container/linux-$arch"
|
container_context="$root/.release/container/linux-$arch"
|
||||||
mkdir -p "$container_context/app" "$container_context/data"
|
mkdir -p "$container_context/app" "$container_context/data"
|
||||||
cp -a "$output/backend/." "$container_context/app/"
|
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"
|
export REGISTRY_AUTH_FILE="$root/.release/auth/zot-linux-$arch.json"
|
||||||
mkdir -p "$(dirname "$REGISTRY_AUTH_FILE")"
|
mkdir -p "$(dirname "$REGISTRY_AUTH_FILE")"
|
||||||
|
|||||||
+10
-2
@@ -101,11 +101,19 @@ function Publish-Package([string]$Role, [string]$BinaryDirectory) {
|
|||||||
foreach ($file in @($archive, $checksumPath)) {
|
foreach ($file in @($archive, $checksumPath)) {
|
||||||
$name = Split-Path -Leaf $file
|
$name = Split-Path -Leaf $file
|
||||||
$url = "$giteaBase/api/packages/justme/generic/monitor-node/$version/$name"
|
$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) {
|
if ($LASTEXITCODE -ne 0) {
|
||||||
throw "Gitea package upload failed for $name."
|
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)."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user