diff --git a/.woodpecker/ci.yml b/.woodpecker/ci.yml index 5dbcc82..0cd7efc 100644 --- a/.woodpecker/ci.yml +++ b/.woodpecker/ci.yml @@ -45,16 +45,32 @@ steps: commands: - pdf=$(ls *.pdf | head -n1) - tag=$(date +%F) - # Create the release (ignore error if it already exists) - | - curl -s -o /dev/null -w "%{http_code}" -X POST \ + echo "Creating release for tag $tag..." + create_resp=$(curl -s -w "%{http_code}" -o /tmp/create.json -X POST \ -H "Authorization: token $GITEA_TOKEN" \ -H "Content-Type: application/json" \ - -d "{\"tag_name\": \"$tag\", \"name\": \"$tag\", \"draft\": false, \"prerelease\": false}" \ - https://git.keligrubb.com/api/v1/repos/keligrubb/scrollsmith/releases || true - # Upload the PDF as a release asset - - | - curl -X POST \ + -d "{\"tag_name\":\"$tag\",\"name\":\"$tag\"}" \ + https://git.keligrubb.com/api/v1/repos/keligrubb/scrollsmith/releases) + echo "Create release HTTP status: $create_resp" + echo "Fetching release ID..." + release_id=$(curl -s \ + -H "Authorization: token $GITEA_TOKEN" \ + https://git.keligrubb.com/api/v1/repos/keligrubb/scrollsmith/releases/tags/$tag | + awk -F: '/"id"[ ]*:/ {gsub(/[^0-9]/,"",$2); print $2; exit}') + echo "Release ID = $release_id" + echo "Checking if asset $pdf already exists..." + assets=$(curl -s -H "Authorization: token $GITEA_TOKEN" \ + https://git.keligrubb.com/api/v1/repos/keligrubb/scrollsmith/releases/$release_id/assets) + echo "Assets response: $assets" + if echo "$assets" | grep -q "\"name\":\"$pdf\""; then + echo "Asset $pdf already uploaded, skipping." + exit 0 + fi + echo "Uploading $pdf to release $release_id..." + upload_resp=$(curl -s -w "%{http_code}" -o /tmp/upload.json -X POST \ -H "Authorization: token $GITEA_TOKEN" \ -F "attachment=@$pdf" \ - "https://git.keligrubb.com/api/v1/repos/keligrubb/scrollsmith/releases/$tag/assets" + https://git.keligrubb.com/api/v1/repos/keligrubb/scrollsmith/releases/$release_id/assets) + echo "Upload HTTP status: $upload_resp" + echo "Upload response: $(cat /tmp/upload.json)"