8 Commits
Author SHA1 Message Date
austnv 3e961e8462 v0.7.3
Build and Deploy Backend / build-and-deploy (push) Successful in 29s
2026-06-21 22:34:33 +03:00
austnv bdee2fe336 microfix: env.REGISTRY -> git.uvpn.shop 2026-06-21 22:31:08 +03:00
austnv 6e07ccca3e fix token (ACCESS_TOKEN)
Build and Deploy Backend / build-and-deploy (push) Successful in 26s
2026-06-21 22:26:34 +03:00
austnv 53a2ba5885 fix token 2026-06-21 22:24:04 +03:00
austnv 0c9464d624 fix release workflow 2026-06-21 22:22:19 +03:00
austnv b2c6a30104 fix release workflow 2026-06-21 22:18:25 +03:00
austnv 5d95c2dea3 fix release workflow 2026-06-21 22:15:39 +03:00
austnv 0c7cc7cdb8 fix: problem with gitea actions 2026-06-21 22:12:39 +03:00
2 changed files with 43 additions and 42 deletions
+42 -41
View File
@@ -27,47 +27,48 @@ jobs:
username: ${{ gitea.repository_owner }} username: ${{ gitea.repository_owner }}
password: ${{ secrets.ACCESS_TOKEN }} password: ${{ secrets.ACCESS_TOKEN }}
# 4. Собираем и пушим образ - name: Create Gitea Release via API
- name: Build and push Docker image run: |
uses: docker/build-push-action@v5 # Получаем описание из тега (если есть)
with: TAG_MESSAGE=$(git tag -l --format='%(contents)' "${{ gitea.ref_name }}" 2>/dev/null || echo "Автоматический релиз через CI/CD")
context: .
push: true # Экранируем кавычки и переносы для JSON
tags: | TAG_MESSAGE_ESCAPED=$(echo "$TAG_MESSAGE" | sed 's/"/\\"/g' | awk '{printf "%s\\n", $0}')
git.uvpn.shop/uvpn/backend:latest
git.uvpn.shop/uvpn/backend:${{ gitea.sha }} # Формируем JSON
JSON_PAYLOAD=$(cat <<EOF
- name: Create Gitea Release {
uses: actions/gitea-release-action@v1 "tag_name": "${{ gitea.ref_name }}",
with: "name": "Release ${{ gitea.ref_name }}",
release_name: ${{ gitea.ref_name }} "body": "## Релиз ${{ gitea.ref_name }}\n\n📝 ${TAG_MESSAGE_ESCAPED}\n\n---\n\n**🐳 Docker образ:** \`git.uvpn.shop/${{ gitea.repository }}:${{ gitea.sha }}\`\n**🏷️ Тег:** \`${{ gitea.ref_name }}\`\n**👤 Автор:** ${{ gitea.actor }}\n\n✅ Автоматически собрано и развёрнуто",
release_notes: | "draft": false,
## Релиз ${{ gitea.ref_name }} "prerelease": false
}
${{ (github.event.head_commit.message != '' && format('📝 {0}', github.event.head_commit.message)) || '' }} EOF
)
### 📦 Что изменилось
${{ github.event.head_commit.message || 'Автоматический релиз через CI/CD' }} # Отправляем запрос
RESPONSE=$(curl -s -w "\n%{http_code}" \
--- -X POST \
-H "Authorization: token ${{ secrets.ACCESS_TOKEN }}" \
### 🔧 Технические детали -H "Content-Type: application/json" \
- **Docker образ:** `${{ env.REGISTRY }}/${{ gitea.repository }}:${{ gitea.sha }}` -d "$JSON_PAYLOAD" \
- **Тег:** `${{ gitea.ref_name }}` "https://git.uvpn.shop/api/v1/repos/${{ gitea.repository }}/releases")
- **Ветка:** `${{ gitea.ref }}`
- **Автор:** ${{ gitea.actor }} # Проверяем ответ
HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
### 🚀 Деплой BODY=$(echo "$RESPONSE" | sed '$d')
- ✅ Образ собран и отправлен в Container Registry
- ✅ Сервер обновлён автоматически if [ "$HTTP_CODE" -eq 201 ]; then
echo "✅ Релиз успешно создан!"
--- echo "$BODY" | jq '.'
elif [ "$HTTP_CODE" -eq 409 ]; then
> Релиз создан автоматически через Gitea Actions echo "⚠️ Релиз с таким тегом уже существует, пропускаем"
draft: false else
prerelease: false echo "❌ Ошибка создания релиза (HTTP $HTTP_CODE)"
env: echo "$BODY"
GITEA_API_KEY: ${{ secrets.ACCESS_TOKEN }} exit 1
fi
# 5. Устанавливаем SSH-ключ для деплоя # 5. Устанавливаем SSH-ключ для деплоя
- name: Install SSH key - name: Install SSH key
+1 -1
View File
@@ -1,6 +1,6 @@
[project] [project]
name = "uvpn-backend" name = "uvpn-backend"
version = "0.7.2" version = "0.7.3"
description = "FastAPI backend with Docker for uvpn.shop" description = "FastAPI backend with Docker for uvpn.shop"
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"