Исправление: обновлены ссылки на токены в Makefile и release.yml для CI/CD

This commit is contained in:
Dmitriy Fofanov
2026-02-23 14:51:01 +03:00
parent 812ec7165f
commit 3c916d80a4
2 changed files with 23 additions and 14 deletions
+14 -6
View File
@@ -8,7 +8,7 @@
# Создаёт аннотированный git-тег v2.1.0 и пушит его в origin.
# Workflow запускается автоматически по событию push.tags.
#
# 2. make ci-release VERSION=2.1.0 GITEA_TOKEN=<токен>
# 2. make ci-release VERSION=2.1.0 GIT_TOKEN=<токен>
# Вызывает Gitea API (workflow_dispatch) — запускает вручную
# без создания тега. Удобно для тестирования пайплайна.
#
@@ -30,8 +30,9 @@
# НЕОБХОДИМАЯ НАСТРОЙКА:
#
# В настройках репозитория Gitea → Settings → Secrets добавить:
# GITEA_TOKEN — токен с правами write:repository и write:release
# (обычно автоматически инжектируется runner'ом)
# GIT_TOKEN (рекомендуется) или GITEA_TOKEN — токен с правами
# write:repository и write:release
# (обычно автоматически инжектируется runner'ом)
#
# ══════════════════════════════════════════════════════════════════════════════
@@ -53,7 +54,7 @@ on:
# ── Способ 2: запуск через make release-tag ───────────────────────────────
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]*"
- "v*.*.*"
# ──────────────────────────────────────────────────────────────────────────────
# Глобальные переменные окружения (доступны во всех jobs)
@@ -244,8 +245,15 @@ jobs:
# POST /api/v1/repos/{owner}/{repo}/releases/{id}/assets — загрузить файл
- name: "Создание релиза в Gitea и загрузка файлов"
env:
GIT_TOKEN: ${{ secrets.GIT_TOKEN }}
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
TOKEN="${GIT_TOKEN:-$GITEA_TOKEN}"
if [ -z "${TOKEN}" ]; then
echo "ОШИБКА: не задан секрет GIT_TOKEN (или GITEA_TOKEN)."
exit 1
fi
GITEA_URL="${{ github.server_url }}"
REPO="${{ github.repository }}"
COMMIT="${{ github.sha }}"
@@ -295,7 +303,7 @@ jobs:
echo "Создаём релиз ${TAG}..."
RELEASE_JSON=$(curl -sf -X POST \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Authorization: token ${TOKEN}" \
-H "Content-Type: application/json" \
"${GITEA_URL}/api/v1/repos/${REPO}/releases" \
-d "{
@@ -334,7 +342,7 @@ jobs:
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" \
-X POST \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Authorization: token ${TOKEN}" \
-H "Content-Type: application/octet-stream" \
--data-binary @"${FILE}" \
"${GITEA_URL}/api/v1/repos/${REPO}/releases/${RELEASE_ID}/assets?name=${FILENAME}")
+9 -8
View File
@@ -16,6 +16,7 @@ OUTPUT_DIR := ./result
# Переопределить через env или CLI: make release-tag GITEA_URL=https://...
GITEA_URL ?= https://github.dfv24.com
GITEA_REPO ?= fofanov/genaudiobookinfo
GIT_TOKEN ?=
GITEA_TOKEN ?=
# ============================================================================
@@ -486,25 +487,25 @@ release-tag-delete:
$(info >>> Тег v$(VERSION) удалён.)
## Запустить CI/CD workflow вручную через Gitea API (без создания тега)
## Использование: make ci-release VERSION=2.1.0 GITEA_TOKEN=<токен>
## Использование: make ci-release VERSION=2.1.0 GIT_TOKEN=<токен>
ifeq ($(OS),Windows_NT)
ci-release:
$(if $(GITEA_TOKEN),,$(error GITEA_TOKEN не задан. Используйте: make ci-release GITEA_TOKEN=<токен>))
$(if $(or $(GIT_TOKEN),$(GITEA_TOKEN)),,$(error GIT_TOKEN (или GITEA_TOKEN) не задан. Используйте: make ci-release GIT_TOKEN=<токен>))
$(info >>> Запуск CI/CD workflow для версии $(VERSION)...)
Invoke-RestMethod -Method Post \
-Uri '$(GITEA_URL)/api/v1/repos/$(GITEA_REPO)/actions/workflows/release.yml/dispatches' \
-Headers @{ Authorization = 'token $(GITEA_TOKEN)'; 'Content-Type' = 'application/json' } \
-Body '{"ref": "main", "inputs": {"version": "$(VERSION)"}}'
-Headers @{ Authorization = 'token $(if $(GIT_TOKEN),$(GIT_TOKEN),$(GITEA_TOKEN))'; 'Content-Type' = 'application/json' } \
-Body '{"ref": "master", "inputs": {"version": "$(VERSION)"}}'
$(info >>> Workflow запущен. Статус: $(GITEA_URL)/$(GITEA_REPO)/actions)
else
ci-release:
$(if $(GITEA_TOKEN),,$(error GITEA_TOKEN не задан. Используйте: make ci-release GITEA_TOKEN=<токен>))
$(if $(or $(GIT_TOKEN),$(GITEA_TOKEN)),,$(error GIT_TOKEN (или GITEA_TOKEN) не задан. Используйте: make ci-release GIT_TOKEN=<токен>))
$(info >>> Запуск CI/CD workflow для версии $(VERSION)...)
curl -sf -X POST \
-H "Authorization: token $(GITEA_TOKEN)" \
-H "Authorization: token $(if $(GIT_TOKEN),$(GIT_TOKEN),$(GITEA_TOKEN))" \
-H "Content-Type: application/json" \
"$(GITEA_URL)/api/v1/repos/$(GITEA_REPO)/actions/workflows/release.yml/dispatches" \
-d '{"ref": "main", "inputs": {"version": "$(VERSION)"}}' \
-d '{"ref": "master", "inputs": {"version": "$(VERSION)"}}' \
&& echo "Workflow запущен. Статус: $(GITEA_URL)/$(GITEA_REPO)/actions"
endif
@@ -590,7 +591,7 @@ help:
$(info make ci-check Проверить git-статус перед релизом)
$(info make release-tag VERSION=X.Y.Z Создать тег и запустить CI автоматически)
$(info make ci-release VERSION=X.Y.Z Запустить CI вручную через Gitea API)
$(info GITEA_TOKEN=<токен> обязателен для ci-release)
$(info GIT_TOKEN=<токен> (или GITEA_TOKEN) обязателен для ci-release)
$(info make release-tag-delete VERSION=X.Y.Z Удалить ошибочный тег)
$(info )
$(info Wiki:)