This commit is contained in:
@@ -22,43 +22,50 @@ jobs:
|
|||||||
|
|
||||||
# Создаем имя тега
|
# Создаем имя тега
|
||||||
TAG="v${VERSION}"
|
TAG="v${VERSION}"
|
||||||
echo "TAG=$TAG" >> $GITEA_ENV
|
|
||||||
echo "VERSION=$VERSION" >> $GITEA_ENV
|
|
||||||
echo "RELEASE=$RELEASE" >> $GITEA_ENV
|
|
||||||
|
|
||||||
echo "Тег: $TAG"
|
# Правильный формат для Gitea - в кавычках
|
||||||
echo "Версия: $VERSION"
|
echo 'TAG="'"${TAG}"'"' >> $GITEA_ENV
|
||||||
echo "Ревизия: $RELEASE"
|
echo 'VERSION="'"${VERSION}"'"' >> $GITEA_ENV
|
||||||
|
echo 'RELEASE="'"${RELEASE}"'"' >> $GITEA_ENV
|
||||||
|
|
||||||
|
echo "Тег: ${TAG}"
|
||||||
|
echo "Версия: ${VERSION}"
|
||||||
|
echo "Ревизия: ${RELEASE}"
|
||||||
|
|
||||||
- name: Проверка существования тега
|
- name: Проверка существования тега
|
||||||
id: check_tag
|
id: check_tag
|
||||||
run: |
|
run: |
|
||||||
echo "Проверяем тег: $TAG"
|
echo "Проверяем тег: ${TAG}"
|
||||||
|
|
||||||
# Проверяем на удаленном сервере
|
# Проверяем на удаленном сервере
|
||||||
if git ls-remote --tags origin "$TAG" 2>/dev/null | grep -q "$TAG"; then
|
if git ls-remote --tags origin "${TAG}" 2>/dev/null | grep -q "${TAG}"; then
|
||||||
echo "Тег $TAG уже существует на удаленном сервере"
|
echo "Тег ${TAG} уже существует на удаленном сервере"
|
||||||
echo "TAG_EXISTS_REMOTE=true" >> $GITEA_ENV
|
echo 'TAG_EXISTS_REMOTE="true"' >> $GITEA_ENV
|
||||||
else
|
else
|
||||||
echo "Тег $TAG не существует на удаленном сервере"
|
echo "Тег ${TAG} не существует на удаленном сервере"
|
||||||
echo "TAG_EXISTS_REMOTE=false" >> $GITEA_ENV
|
echo 'TAG_EXISTS_REMOTE="false"' >> $GITEA_ENV
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
- name: Создание тега (только если не существует)
|
||||||
|
if: env.TAG_EXISTS_REMOTE == 'true'
|
||||||
|
run: |
|
||||||
|
echo "Тег уже существует, пропускаем создание"
|
||||||
|
|
||||||
- name: Создание тега (только если не существует)
|
- name: Создание тега (только если не существует)
|
||||||
if: env.TAG_EXISTS_REMOTE == 'false'
|
if: env.TAG_EXISTS_REMOTE == 'false'
|
||||||
run: |
|
run: |
|
||||||
echo "Создаем новый тег: $TAG"
|
echo "Создаем новый тег: ${TAG}"
|
||||||
git config user.email "svk@nuk-svk.ru"
|
git config user.email "svk@nuk-svk.ru"
|
||||||
git config user.name "svk"
|
git config user.name "svk"
|
||||||
|
|
||||||
# Создаем тег локально
|
# Создаем тег локально
|
||||||
git tag -a "$TAG" -m "Release $TAG - $RELEASE"
|
git tag -a "${TAG}" -m "Release ${TAG} - ${RELEASE}"
|
||||||
|
|
||||||
# Настраиваем URL для push
|
# Настраиваем URL для push
|
||||||
git remote set-url origin "https://${{ secrets.USER }}:${{ secrets.API_TOKEN }}@git.nuk-svk.ru/${{ gitea.repository }}.git"
|
git remote set-url origin "https://${{ secrets.USER }}:${{ secrets.API_TOKEN }}@git.nuk-svk.ru/${{ gitea.repository }}.git"
|
||||||
|
|
||||||
# Пушим тег на сервер
|
# Пушим тег на сервер
|
||||||
git push origin "$TAG"
|
git push origin "${TAG}"
|
||||||
|
|
||||||
- name: Сборка пакетов
|
- name: Сборка пакетов
|
||||||
run: |
|
run: |
|
||||||
@@ -83,12 +90,14 @@ jobs:
|
|||||||
if echo "$RESPONSE" | grep -q '"id"'; then
|
if echo "$RESPONSE" | grep -q '"id"'; then
|
||||||
REL_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | cut -d: -f2)
|
REL_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | cut -d: -f2)
|
||||||
echo "Реліз уже существует. ID: $REL_ID"
|
echo "Реліз уже существует. ID: $REL_ID"
|
||||||
echo "RELEASE_EXISTS=true" >> $GITHUB_ENV
|
|
||||||
echo "REL_ID=$REL_ID" >> $GITHUB_ENV
|
# Ключевое исправление: пишем в правильном формате
|
||||||
|
echo 'RELEASE_EXISTS="true"' >> $GITEA_ENV
|
||||||
|
echo 'REL_ID="'"${REL_ID}"'"' >> $GITEA_ENV
|
||||||
else
|
else
|
||||||
echo "Реліз не существует"
|
echo "Реліз не существует"
|
||||||
echo "RELEASE_EXISTS=false" >> $GITHUB_ENV
|
echo 'RELEASE_EXISTS="false"' >> $GITEA_ENV
|
||||||
echo "REL_ID=" >> $GITHUB_ENV
|
echo 'REL_ID=""' >> $GITEA_ENV
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Создание или обновление релиза
|
- name: Создание или обновление релиза
|
||||||
@@ -96,6 +105,12 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "=== Работа с релизом для тега $TAG ==="
|
echo "=== Работа с релизом для тега $TAG ==="
|
||||||
|
|
||||||
|
# Проверяем, что тег существует перед созданием релиза
|
||||||
|
if ! git ls-remote --tags origin "${TAG}" 2>/dev/null | grep -q "${TAG}"; then
|
||||||
|
echo "ОШИБКА: Тег ${TAG} не существует на сервере!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
RELEASE_BODY="## Projman $VERSION
|
RELEASE_BODY="## Projman $VERSION
|
||||||
|
|
||||||
**Ревизия:** $RELEASE
|
**Ревизия:** $RELEASE
|
||||||
@@ -109,8 +124,8 @@ jobs:
|
|||||||
# Экранируем переносы строк для JSON
|
# Экранируем переносы строк для JSON
|
||||||
ESCAPED_BODY=$(echo "$RELEASE_BODY" | sed ':a;N;$!ba;s/\n/\\n/g')
|
ESCAPED_BODY=$(echo "$RELEASE_BODY" | sed ':a;N;$!ba;s/\n/\\n/g')
|
||||||
|
|
||||||
# Используем переменные окружения ПРАВИЛЬНО
|
# Используем переменные напрямую, так как они в окружении
|
||||||
if [ "$RELEASE_EXISTS" = "true" ]; then
|
if [ "$RELEASE_EXISTS" = "true" ] && [ -n "$REL_ID" ]; then
|
||||||
echo "Обновляем существующий релиз ID: $REL_ID"
|
echo "Обновляем существующий релиз ID: $REL_ID"
|
||||||
|
|
||||||
# Обновляем существующий релиз
|
# Обновляем существующий релиз
|
||||||
@@ -149,10 +164,11 @@ jobs:
|
|||||||
if echo "$RESPONSE" | grep -q '"id"'; then
|
if echo "$RESPONSE" | grep -q '"id"'; then
|
||||||
NEW_REL_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | cut -d: -f2)
|
NEW_REL_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | cut -d: -f2)
|
||||||
echo "Новый ID релиза: $NEW_REL_ID"
|
echo "Новый ID релиза: $NEW_REL_ID"
|
||||||
echo "REL_ID=$NEW_REL_ID" >> $GITHUB_ENV
|
echo 'REL_ID="'"${NEW_REL_ID}"'"' >> $GITEA_ENV
|
||||||
else
|
else
|
||||||
echo "ОШИБКА: Не удалось получить ID релиза из ответа"
|
echo "ОШИБКА: Не удалось получить ID релиза из ответа"
|
||||||
echo "REL_ID=" >> $GITHUB_ENV
|
echo "Ответ сервера: $RESPONSE"
|
||||||
|
echo 'REL_ID=""' >> $GITEA_ENV
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -178,7 +194,7 @@ jobs:
|
|||||||
FILENAME=$(basename "$FILE")
|
FILENAME=$(basename "$FILE")
|
||||||
echo "Загружаем: $FILENAME"
|
echo "Загружаем: $FILENAME"
|
||||||
|
|
||||||
curl -v --user "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
|
curl -s --user "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
|
||||||
--upload-file "$FILE" \
|
--upload-file "$FILE" \
|
||||||
"${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases/$REL_ID/assets?name=$FILENAME"
|
"${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases/$REL_ID/assets?name=$FILENAME"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user