Улучшение процесса выпуска релизов: поддержка динамической ветки по умолчанию и улучшенная обработка тегов.
This commit is contained in:
@@ -69,8 +69,12 @@ jobs:
|
|||||||
echo ">>> Тег ${TAG} найден, клонирование..."
|
echo ">>> Тег ${TAG} найден, клонирование..."
|
||||||
git clone --branch "${TAG}" --depth 50 "${CLONE_URL}" . 2>&1 | grep -F -v "${TOKEN:-}" || true
|
git clone --branch "${TAG}" --depth 50 "${CLONE_URL}" . 2>&1 | grep -F -v "${TOKEN:-}" || true
|
||||||
else
|
else
|
||||||
echo ">>> Тег ${TAG} не найден, клонирование ветки master..."
|
DEFAULT_BRANCH="${{ github.event.repository.default_branch }}"
|
||||||
git clone --branch master --depth 50 "${CLONE_URL}" . 2>&1 | grep -F -v "${TOKEN:-}" || true
|
if [ -z "${DEFAULT_BRANCH}" ] || [ "${DEFAULT_BRANCH}" = "null" ]; then
|
||||||
|
DEFAULT_BRANCH="master"
|
||||||
|
fi
|
||||||
|
echo ">>> Тег ${TAG} не найден, клонирование ветки ${DEFAULT_BRANCH}..."
|
||||||
|
git clone --branch "${DEFAULT_BRANCH}" --depth 50 "${CLONE_URL}" . 2>&1 | grep -F -v "${TOKEN:-}" || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
git fetch --tags --force 2>/dev/null || true
|
git fetch --tags --force 2>/dev/null || true
|
||||||
@@ -268,7 +272,10 @@ jobs:
|
|||||||
EXTRA_HEADERS=()
|
EXTRA_HEADERS=()
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TARGET_COMMITISH="${RELEASE_REF:-master}"
|
TARGET_COMMITISH="${RELEASE_REF:-${{ github.event.repository.default_branch }}}"
|
||||||
|
if [ -z "${TARGET_COMMITISH}" ] || [ "${TARGET_COMMITISH}" = "null" ]; then
|
||||||
|
TARGET_COMMITISH="master"
|
||||||
|
fi
|
||||||
if [ -n "${GITHUB_SHA:-}" ]; then
|
if [ -n "${GITHUB_SHA:-}" ]; then
|
||||||
TARGET_COMMITISH="${GITHUB_SHA}"
|
TARGET_COMMITISH="${GITHUB_SHA}"
|
||||||
fi
|
fi
|
||||||
@@ -302,7 +309,13 @@ jobs:
|
|||||||
PY
|
PY
|
||||||
)
|
)
|
||||||
|
|
||||||
RELEASE_PAYLOAD="{\"tag_name\":\"${TAG}\",\"target_commitish\":\"${TARGET_COMMITISH}\",\"name\":\"${TAG}\",\"body\":${BODY_JSON},\"draft\":false,\"prerelease\":false}"
|
if [ "${HOST}" = "github.com" ]; then
|
||||||
|
RELEASE_PAYLOAD="{\"tag_name\":\"${TAG}\",\"target_commitish\":\"${TARGET_COMMITISH}\",\"name\":\"${TAG}\",\"body\":${BODY_JSON},\"draft\":false,\"prerelease\":false}"
|
||||||
|
else
|
||||||
|
RELEASE_PAYLOAD="{\"tag_name\":\"${TAG}\",\"target\":\"${TARGET_COMMITISH}\",\"title\":\"${TAG}\",\"note\":${BODY_JSON},\"draft\":false,\"prerelease\":false}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ">>> Создание релиза для тега ${TAG}..."
|
||||||
RELEASE_JSON=$(curl -sS -X POST \
|
RELEASE_JSON=$(curl -sS -X POST \
|
||||||
-H "${AUTH_HEADER}" \
|
-H "${AUTH_HEADER}" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
@@ -319,6 +332,18 @@ jobs:
|
|||||||
RELEASE_ID=$(cat /tmp/release_id.txt)
|
RELEASE_ID=$(cat /tmp/release_id.txt)
|
||||||
rm -f /tmp/release_id.txt
|
rm -f /tmp/release_id.txt
|
||||||
|
|
||||||
|
if [ -z "${RELEASE_ID}" ] && [ "${HOST}" != "github.com" ]; then
|
||||||
|
echo ">>> Не удалось получить ID из create-response, пытаемся найти существующий релиз по тегу ${TAG}..."
|
||||||
|
RELEASE_JSON=$(curl -sS \
|
||||||
|
-H "${AUTH_HEADER}" \
|
||||||
|
"${SERVER}/api/v1/repos/${REPO}/releases/tags/${TAG}")
|
||||||
|
|
||||||
|
if printf '%s' "${RELEASE_JSON}" | python3 -c "import sys, json; j=json.load(sys.stdin); print(j.get('id',''));" >/tmp/release_id.txt 2>/dev/null; then
|
||||||
|
RELEASE_ID=$(cat /tmp/release_id.txt)
|
||||||
|
fi
|
||||||
|
rm -f /tmp/release_id.txt
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "${RELEASE_ID}" ]; then
|
if [ -z "${RELEASE_ID}" ]; then
|
||||||
echo "ОШИБКА: не удалось получить ID релиза"
|
echo "ОШИБКА: не удалось получить ID релиза"
|
||||||
echo "${RELEASE_JSON}"
|
echo "${RELEASE_JSON}"
|
||||||
|
|||||||
@@ -3,6 +3,11 @@
|
|||||||
# Let's Encrypt с DNS-валидацией через API reg.ru
|
# Let's Encrypt с DNS-валидацией через API reg.ru
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
|
# Подгружаем локальные переменные окружения (не коммитятся в git)
|
||||||
|
ifneq (,$(wildcard .env))
|
||||||
|
include .env
|
||||||
|
endif
|
||||||
|
|
||||||
# Переменные (переопределяемые через окружение или аргументы make)
|
# Переменные (переопределяемые через окружение или аргументы make)
|
||||||
INSTALL_DIR ?= /opt/letsencrypt-regru
|
INSTALL_DIR ?= /opt/letsencrypt-regru
|
||||||
SCRIPT_NAME = letsencrypt_regru_api.py
|
SCRIPT_NAME = letsencrypt_regru_api.py
|
||||||
@@ -55,7 +60,7 @@ WIKI_SYNC_REF ?= master
|
|||||||
|
|
||||||
RELEASE_WORKFLOW ?= release.yml
|
RELEASE_WORKFLOW ?= release.yml
|
||||||
RELEASE_REF ?= master
|
RELEASE_REF ?= master
|
||||||
RELEASE_TAG := $(if $(TAG),$(TAG),v$(VERSION))
|
RELEASE_TAG := $(if $(TAG),$(TAG),$(if $(filter v%,$(VERSION)),$(VERSION),v$(VERSION)))
|
||||||
|
|
||||||
DEPLOY_SERVICE_WORKFLOW ?= deploy-service.yml
|
DEPLOY_SERVICE_WORKFLOW ?= deploy-service.yml
|
||||||
DEPLOY_SERVICE_REF ?= master
|
DEPLOY_SERVICE_REF ?= master
|
||||||
@@ -92,9 +97,9 @@ help:
|
|||||||
@echo ""
|
@echo ""
|
||||||
@echo "$(GREEN)CI / Wiki:$(NC)"
|
@echo "$(GREEN)CI / Wiki:$(NC)"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo " $(YELLOW)make wiki-sync$(NC) - Запустить workflow wiki-sync.yml на gitea.example.com"
|
@echo " $(YELLOW)make wiki-sync$(NC) - Запустить workflow wiki-sync.yml на $(DFGIT_URL)"
|
||||||
@echo " $(YELLOW)make ci-release$(NC) - Запустить workflow release.yml на gitea.example.com (нужен TAG или VERSION)"
|
@echo " $(YELLOW)make ci-release$(NC) - Запустить workflow release.yml на $(DFGIT_URL) (нужен TAG или VERSION)"
|
||||||
@echo " $(YELLOW)make deploy-service$(NC) - Запустить workflow deploy-service.yml на gitea.example.com"
|
@echo " $(YELLOW)make deploy-service$(NC) - Запустить workflow deploy-service.yml на $(DFGIT_URL)"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo " $(YELLOW)make help$(NC) - Показать эту справку"
|
@echo " $(YELLOW)make help$(NC) - Показать эту справку"
|
||||||
@echo ""
|
@echo ""
|
||||||
@@ -450,11 +455,11 @@ logs:
|
|||||||
@echo "$(YELLOW)→ Логи systemd:$(NC)"
|
@echo "$(YELLOW)→ Логи systemd:$(NC)"
|
||||||
@journalctl -u $(SERVICE_FILE) -n 50 --no-pager 2>/dev/null || echo "$(YELLOW)Логи systemd не найдены$(NC)"
|
@journalctl -u $(SERVICE_FILE) -n 50 --no-pager 2>/dev/null || echo "$(YELLOW)Логи systemd не найдены$(NC)"
|
||||||
|
|
||||||
# Запуск workflow синхронизации wiki на gitea.example.com
|
# Запуск workflow синхронизации wiki на $(DFGIT_URL)
|
||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
wiki-sync:
|
wiki-sync:
|
||||||
@echo "$(BLUE)╔════════════════════════════════════════════════════════════════╗$(NC)"
|
@echo "$(BLUE)╔════════════════════════════════════════════════════════════════╗$(NC)"
|
||||||
@echo "$(BLUE)║ Запуск wiki-sync workflow на gitea.example.com ║$(NC)"
|
@echo "$(BLUE)║ Запуск wiki-sync workflow на $(DFGIT_URL) ║$(NC)"
|
||||||
@echo "$(BLUE)╚════════════════════════════════════════════════════════════════╝$(NC)"
|
@echo "$(BLUE)╚════════════════════════════════════════════════════════════════╝$(NC)"
|
||||||
@echo ""
|
@echo ""
|
||||||
$(if $(AUTH_TOKEN),,$(error Токен не задан. Укажите DFGIT_TOKEN или GIT_TOKEN/GITEA_TOKEN/GITEA_ACCESS_TOKEN))
|
$(if $(AUTH_TOKEN),,$(error Токен не задан. Укажите DFGIT_TOKEN или GIT_TOKEN/GITEA_TOKEN/GITEA_ACCESS_TOKEN))
|
||||||
@@ -462,7 +467,7 @@ wiki-sync:
|
|||||||
else
|
else
|
||||||
wiki-sync:
|
wiki-sync:
|
||||||
@echo "$(BLUE)╔════════════════════════════════════════════════════════════════╗$(NC)"
|
@echo "$(BLUE)╔════════════════════════════════════════════════════════════════╗$(NC)"
|
||||||
@echo "$(BLUE)║ Запуск wiki-sync workflow на gitea.example.com ║$(NC)"
|
@echo "$(BLUE)║ Запуск wiki-sync workflow на $(DFGIT_URL) ║$(NC)"
|
||||||
@echo "$(BLUE)╚════════════════════════════════════════════════════════════════╝$(NC)"
|
@echo "$(BLUE)╚════════════════════════════════════════════════════════════════╝$(NC)"
|
||||||
@echo ""
|
@echo ""
|
||||||
$(if $(AUTH_TOKEN),,$(error Токен не задан. Укажите DFGIT_TOKEN или GIT_TOKEN/GITEA_TOKEN/GITEA_ACCESS_TOKEN))
|
$(if $(AUTH_TOKEN),,$(error Токен не задан. Укажите DFGIT_TOKEN или GIT_TOKEN/GITEA_TOKEN/GITEA_ACCESS_TOKEN))
|
||||||
@@ -478,7 +483,7 @@ endif
|
|||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
ci-release:
|
ci-release:
|
||||||
@echo "$(BLUE)╔════════════════════════════════════════════════════════════════╗$(NC)"
|
@echo "$(BLUE)╔════════════════════════════════════════════════════════════════╗$(NC)"
|
||||||
@echo "$(BLUE)║ Запуск release workflow на gitea.example.com ║$(NC)"
|
@echo "$(BLUE)║ Запуск release workflow на $(DFGIT_URL) ║$(NC)"
|
||||||
@echo "$(BLUE)╚════════════════════════════════════════════════════════════════╝$(NC)"
|
@echo "$(BLUE)╚════════════════════════════════════════════════════════════════╝$(NC)"
|
||||||
@echo ""
|
@echo ""
|
||||||
ifndef TAG
|
ifndef TAG
|
||||||
@@ -491,7 +496,7 @@ endif
|
|||||||
else
|
else
|
||||||
ci-release:
|
ci-release:
|
||||||
@echo "$(BLUE)╔════════════════════════════════════════════════════════════════╗$(NC)"
|
@echo "$(BLUE)╔════════════════════════════════════════════════════════════════╗$(NC)"
|
||||||
@echo "$(BLUE)║ Запуск release workflow на gitea.example.com ║$(NC)"
|
@echo "$(BLUE)║ Запуск release workflow на $(DFGIT_URL) ║$(NC)"
|
||||||
@echo "$(BLUE)╚════════════════════════════════════════════════════════════════╝$(NC)"
|
@echo "$(BLUE)╚════════════════════════════════════════════════════════════════╝$(NC)"
|
||||||
@echo ""
|
@echo ""
|
||||||
ifndef TAG
|
ifndef TAG
|
||||||
@@ -512,7 +517,7 @@ endif
|
|||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
deploy-service:
|
deploy-service:
|
||||||
@echo "$(BLUE)╔════════════════════════════════════════════════════════════════╗$(NC)"
|
@echo "$(BLUE)╔════════════════════════════════════════════════════════════════╗$(NC)"
|
||||||
@echo "$(BLUE)║ Запуск deploy-service workflow на gitea.example.com ║$(NC)"
|
@echo "$(BLUE)║ Запуск deploy-service workflow на $(DFGIT_URL) ║$(NC)"
|
||||||
@echo "$(BLUE)╚════════════════════════════════════════════════════════════════╝$(NC)"
|
@echo "$(BLUE)╚════════════════════════════════════════════════════════════════╝$(NC)"
|
||||||
@echo ""
|
@echo ""
|
||||||
$(if $(AUTH_TOKEN),,$(error Токен не задан. Укажите DFGIT_TOKEN или GIT_TOKEN/GITEA_TOKEN/GITEA_ACCESS_TOKEN))
|
$(if $(AUTH_TOKEN),,$(error Токен не задан. Укажите DFGIT_TOKEN или GIT_TOKEN/GITEA_TOKEN/GITEA_ACCESS_TOKEN))
|
||||||
@@ -520,7 +525,7 @@ deploy-service:
|
|||||||
else
|
else
|
||||||
deploy-service:
|
deploy-service:
|
||||||
@echo "$(BLUE)╔════════════════════════════════════════════════════════════════╗$(NC)"
|
@echo "$(BLUE)╔════════════════════════════════════════════════════════════════╗$(NC)"
|
||||||
@echo "$(BLUE)║ Запуск deploy-service workflow на gitea.example.com ║$(NC)"
|
@echo "$(BLUE)║ Запуск deploy-service workflow на $(DFGIT_URL) ║$(NC)"
|
||||||
@echo "$(BLUE)╚════════════════════════════════════════════════════════════════╝$(NC)"
|
@echo "$(BLUE)╚════════════════════════════════════════════════════════════════╝$(NC)"
|
||||||
@echo ""
|
@echo ""
|
||||||
$(if $(AUTH_TOKEN),,$(error Токен не задан. Укажите DFGIT_TOKEN или GIT_TOKEN/GITEA_TOKEN/GITEA_ACCESS_TOKEN))
|
$(if $(AUTH_TOKEN),,$(error Токен не задан. Укажите DFGIT_TOKEN или GIT_TOKEN/GITEA_TOKEN/GITEA_ACCESS_TOKEN))
|
||||||
|
|||||||
Reference in New Issue
Block a user