diff --git a/ci/release-linux.sh b/ci/release-linux.sh index 82d878f..eaa6296 100644 --- a/ci/release-linux.sh +++ b/ci/release-linux.sh @@ -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")" diff --git a/ci/release-windows.ps1 b/ci/release-windows.ps1 index b634da2..f4e23a1 100644 --- a/ci/release-windows.ps1 +++ b/ci/release-windows.ps1 @@ -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)." + } } }