diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 0e66b00..496ed9d 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -80,8 +80,10 @@ jobs: echo "Ответ API проверки релиза: $RESPONSE" + # Правильное извлечение ID из JSON if echo "$RESPONSE" | grep -q '"id"'; then - REL_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | cut -d: -f2) + # Используем Python для корректного парсинга JSON + REL_ID=$(echo "$RESPONSE" | python3 -c "import sys, json; print(json.load(sys.stdin).get('id', ''))") echo "Реліз уже существует. ID: $REL_ID" echo "RELEASE_EXISTS=true" >> $GITEA_ENV @@ -123,6 +125,7 @@ jobs: RESPONSE=$(curl -s -X PATCH \ -u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \ -H "Content-Type: application/json" \ + -H "Accept: application/json" \ -d '{ "name": "Projman '"$VERSION"'", "body": "'"$ESCAPED_BODY"'", @@ -140,6 +143,10 @@ jobs: else echo "ОШИБКА: Не удалось обновить релиз" echo "Ответ: $RESPONSE" + # Пробуем получить более детальную информацию + echo "Пробуем получить информацию о релизе с ID $REL_ID..." + curl -s -u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \ + "${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases/$REL_ID" exit 1 fi @@ -150,6 +157,7 @@ jobs: RESPONSE=$(curl -s -X POST \ -u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \ -H "Content-Type: application/json" \ + -H "Accept: application/json" \ -d '{ "tag_name": "'"$TAG"'", "name": "Projman '"$VERSION"'", @@ -161,9 +169,9 @@ jobs: echo "Ответ создания релиза: $RESPONSE" - # Получаем ID нового релиза + # Получаем ID нового релиза через Python if echo "$RESPONSE" | grep -q '"id"'; then - NEW_REL_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | cut -d: -f2 | tr -d '\n\r ') + NEW_REL_ID=$(echo "$RESPONSE" | python3 -c "import sys, json; print(json.load(sys.stdin).get('id', ''))") echo "Новый ID релиза: $NEW_REL_ID" echo -n "$NEW_REL_ID" > /tmp/rel_id.txt else