Добавлено обновление wiki в Makefile и синхронизация ветки master в workflow
This commit is contained in:
@@ -3,6 +3,7 @@ name: "Wiki Sync"
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
|
- master
|
||||||
- main
|
- main
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ endif
|
|||||||
# Основные команды
|
# Основные команды
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
||||||
.PHONY: all build run clean test lint deps tidy fmt vet help clean-results ensure-build-dir
|
.PHONY: all build run clean test lint deps tidy fmt vet help clean-results ensure-build-dir wiki-update
|
||||||
.PHONY: release-tag release-tag-delete ci-release ci-check release-local
|
.PHONY: release-tag release-tag-delete ci-release ci-check release-local
|
||||||
|
|
||||||
## Сборка + тесты (цель по умолчанию при явном вызове make all)
|
## Сборка + тесты (цель по умолчанию при явном вызове make all)
|
||||||
@@ -513,6 +513,57 @@ endif
|
|||||||
release-local: checksum
|
release-local: checksum
|
||||||
$(info >>> Локальный релиз готов в $(BUILD_DIR)/release/)
|
$(info >>> Локальный релиз готов в $(BUILD_DIR)/release/)
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Wiki — синхронизация локальной папки wiki/ в Gitea Wiki
|
||||||
|
# ============================================================================
|
||||||
|
|
||||||
|
## Синхронизировать папку wiki/ в удалённый wiki-репозиторий (<origin>.wiki.git)
|
||||||
|
ifeq ($(OS),Windows_NT)
|
||||||
|
wiki-update:
|
||||||
|
$(info >>> Синхронизация wiki в Gitea...)
|
||||||
|
if (-Not (Test-Path 'wiki')) { throw 'Папка wiki/ не найдена.' }
|
||||||
|
$$origin = git remote get-url origin
|
||||||
|
if (-not $$origin) { throw 'Не найден remote origin.' }
|
||||||
|
if ($$origin -match '\.git$$') { $$wikiUrl = $$origin -replace '\.git$$', '.wiki.git' } else { $$wikiUrl = "$$origin.wiki.git" }
|
||||||
|
$$tmp = '$(BUILD_DIR)\\.wiki-sync'
|
||||||
|
Remove-Item -Recurse -Force $$tmp -ErrorAction SilentlyContinue
|
||||||
|
New-Item -ItemType Directory -Force '$(BUILD_DIR)' | Out-Null
|
||||||
|
git clone --depth 1 $$wikiUrl $$tmp
|
||||||
|
robocopy wiki $$tmp /MIR /XD .git | Out-Null; if ($$LASTEXITCODE -gt 7) { throw 'Ошибка robocopy при синхронизации wiki.' }
|
||||||
|
Push-Location $$tmp
|
||||||
|
git add -A
|
||||||
|
if (git diff --cached --quiet) {
|
||||||
|
$(info >>> Изменений в wiki нет.)
|
||||||
|
Pop-Location
|
||||||
|
} else {
|
||||||
|
git config user.name "wiki-sync-bot"
|
||||||
|
git config user.email "wiki-sync@local"
|
||||||
|
git commit -m "docs(wiki): sync from main repo"
|
||||||
|
git push origin HEAD
|
||||||
|
Pop-Location
|
||||||
|
$(info >>> Wiki успешно обновлена.)
|
||||||
|
}
|
||||||
|
else
|
||||||
|
wiki-update:
|
||||||
|
$(info >>> Синхронизация wiki в Gitea...)
|
||||||
|
@test -d wiki || (echo "Папка wiki/ не найдена." && exit 1)
|
||||||
|
@ORIGIN=$$(git remote get-url origin); \
|
||||||
|
if [ -z "$$ORIGIN" ]; then echo "Не найден remote origin."; exit 1; fi; \
|
||||||
|
if echo "$$ORIGIN" | grep -q '\.git$$'; then WIKI_URL=$$(echo "$$ORIGIN" | sed 's/\.git$$/.wiki.git/'); else WIKI_URL="$$ORIGIN.wiki.git"; fi; \
|
||||||
|
TMP_DIR="$(BUILD_DIR)/.wiki-sync"; \
|
||||||
|
rm -rf "$$TMP_DIR"; mkdir -p "$(BUILD_DIR)"; \
|
||||||
|
git clone --depth 1 "$$WIKI_URL" "$$TMP_DIR"; \
|
||||||
|
rsync -a --delete --exclude '.git/' wiki/ "$$TMP_DIR"/; \
|
||||||
|
cd "$$TMP_DIR"; \
|
||||||
|
git add -A; \
|
||||||
|
if git diff --cached --quiet; then echo ">>> Изменений в wiki нет."; exit 0; fi; \
|
||||||
|
git config user.name "wiki-sync-bot"; \
|
||||||
|
git config user.email "wiki-sync@local"; \
|
||||||
|
git commit -m "docs(wiki): sync from main repo"; \
|
||||||
|
git push origin HEAD; \
|
||||||
|
echo ">>> Wiki успешно обновлена."
|
||||||
|
endif
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# Справка
|
# Справка
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
@@ -563,5 +614,8 @@ help:
|
|||||||
$(info GITEA_TOKEN=<токен> обязателен для ci-release)
|
$(info GITEA_TOKEN=<токен> обязателен для ci-release)
|
||||||
$(info make release-tag-delete VERSION=X.Y.Z Удалить ошибочный тег)
|
$(info make release-tag-delete VERSION=X.Y.Z Удалить ошибочный тег)
|
||||||
$(info )
|
$(info )
|
||||||
|
$(info Wiki:)
|
||||||
|
$(info make wiki-update Синхронизировать локальную папку wiki/ в Gitea Wiki)
|
||||||
|
$(info )
|
||||||
|
|
||||||
.DEFAULT_GOAL := help
|
.DEFAULT_GOAL := help
|
||||||
|
|||||||
Reference in New Issue
Block a user