diff --git a/.github/workflows/gitea-release.yml b/.github/workflows/gitea-release.yml index 19634aa..b22da1b 100644 --- a/.github/workflows/gitea-release.yml +++ b/.github/workflows/gitea-release.yml @@ -75,6 +75,8 @@ jobs: env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_API_URL: ${{ secrets.GITEA_API_URL }} + GITEA_REPO: ${{ secrets.GITEA_REPO }} + GITEA_OWNER: ${{ secrets.GITEA_OWNER }} run: | VERSION=${{ steps.get_version.outputs.VERSION }} cd .pio/build/esp32dev @@ -101,21 +103,38 @@ jobs: \"body\": \"${{ steps.changelog.outputs.CHANGES }}\" }" - # Create release - RESPONSE=$(curl -X POST \ + # Create release and capture HTTP status + RESPONSE=$(curl -s -w "%{http_code}" -X POST \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/json" \ -d "$RELEASE_DATA" \ - "${GITEA_API_URL}/repos/owner/repo/releases") + "${GITEA_API_URL}/api/v1/repos/${GITEA_OWNER}/${GITEA_REPO}/releases") + + HTTP_STATUS=${RESPONSE: -3} + RESPONSE_BODY=${RESPONSE:0:-3} + if [ "$HTTP_STATUS" != "201" ]; then + echo "Fehler beim Erstellen des Releases: $RESPONSE_BODY" + exit 1 + fi + + # Extract release ID from response + RELEASE_ID=$(echo "$RESPONSE_BODY" | jq -r .id) + # Upload assets - RELEASE_ID=$(echo $RESPONSE | jq -r .id) for file in upgrade_filaman_firmware_v${VERSION}.bin upgrade_filaman_website_v${VERSION}.bin filaman_full_${VERSION}.bin; do if [ -f "$file" ]; then - curl -X POST \ + echo "Uploading $file..." + UPLOAD_RESPONSE=$(curl -s -w "%{http_code}" -X POST \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/octet-stream" \ --data-binary @"$file" \ - "${GITEA_API_URL}/repos/owner/repo/releases/${RELEASE_ID}/assets?name=${file}" + "${GITEA_API_URL}/api/v1/repos/${GITEA_OWNER}/${GITEA_REPO}/releases/${RELEASE_ID}/assets?name=${file}") + + UPLOAD_STATUS=${UPLOAD_RESPONSE: -3} + if [ "$UPLOAD_STATUS" != "201" ]; then + echo "Fehler beim Upload von $file" + exit 1 + fi fi done \ No newline at end of file