diff --git a/.woodpecker/release.yml b/.woodpecker/release.yml index 33d76d7..2446207 100644 --- a/.woodpecker/release.yml +++ b/.woodpecker/release.yml @@ -17,11 +17,21 @@ steps: image: git.unkin.net/unkin/almalinux9-base:20260606 commands: - | + HOST="https://artifactapi.k8s.syd1.au.unkin.net" + REPO="rpm-internal" for rpm in dist/*.rpm; do FILE=$$(basename "$$rpm") - echo "Uploading $${FILE} to artifactapi rpm-internal" + # Verify the package isn't already published before uploading. + # artifactapi has no HEAD route (returns 405), so probe with GET + # against the served path (RPMs are stored under Packages/). + code=$$(curl -s -o /dev/null -w '%{http_code}' "$$HOST/api/v2/remotes/$$REPO/files/Packages/$$FILE" || true) + if [ "$$code" = "200" ]; then + echo "$$FILE already exists in $$REPO (HTTP $$code); skipping upload" + continue + fi + echo "Uploading $$FILE to $$REPO (existence probe returned $$code)" curl -f -X PUT \ - "https://artifactapi3.k8s.syd1.au.unkin.net/api/v2/remotes/rpm-internal/files/$${FILE}" \ + "$$HOST/api/v2/remotes/$$REPO/files/$$FILE" \ -H "Content-Type: application/x-rpm" \ --data-binary @"$$rpm" done