diff --git a/.forgejo/workflows/release.yml b/.forgejo/workflows/release.yml index da1c6b1..3ffeaef 100644 --- a/.forgejo/workflows/release.yml +++ b/.forgejo/workflows/release.yml @@ -209,25 +209,33 @@ jobs: env: FORGEJO_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - PKG_URL="${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/generic/simpl-resultat/latest" + # DELETE uses API v1, PUT uses the package upload API + DELETE_URL="${GITHUB_SERVER_URL}/api/v1/packages/${GITHUB_REPOSITORY_OWNER}/generic/simpl-resultat/latest" + UPLOAD_URL="${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/generic/simpl-resultat/latest" # Delete the old package version to avoid 409 conflicts echo "Deleting old package version (if any)..." DEL_CODE=$(curl -s -w "%{http_code}" -X DELETE \ - "${PKG_URL}" \ + "${DELETE_URL}" \ -H "Authorization: token ${FORGEJO_TOKEN}" \ -o /tmp/del_response.json) echo "Delete HTTP $DEL_CODE" + # 204 = deleted, 404 = didn't exist (both OK) + if [ "$DEL_CODE" != "204" ] && [ "$DEL_CODE" != "404" ]; then + echo "WARNING: Unexpected delete response:" + cat /tmp/del_response.json + fi echo "Uploading latest.json to package registry..." HTTP_CODE=$(curl -w "%{http_code}" -X PUT \ - "${PKG_URL}/latest.json" \ + "${UPLOAD_URL}/latest.json" \ -H "Authorization: token ${FORGEJO_TOKEN}" \ -H "Content-Type: application/json" \ --data-binary "@release-assets/latest.json" \ -o /tmp/pkg_response.json) echo "Upload HTTP $HTTP_CODE" if [ "$HTTP_CODE" != "201" ]; then - echo "Upload response:" + echo "ERROR: Failed to publish latest.json:" cat /tmp/pkg_response.json + exit 1 fi