Тесты сборки
Some checks failed
Build and Release / build (push) Failing after 18s

This commit is contained in:
svk
2026-01-22 21:31:13 +03:00
parent ff1e9dcf8e
commit a6ad7c7720

View File

@@ -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"