39 lines
2.8 KiB
Markdown
39 lines
2.8 KiB
Markdown
# Proposal: Автодеплой dedinit.ru через Gitea Actions при пуше в master
|
|
|
|
## Проблема
|
|
|
|
Сейчас деплой dedinit.ru на Jino (SFTP) выполняется вручную: `make build && export SSHPASS=... && make deploy`.
|
|
Это требует присутствия человека, не даёт истории деплоев и не срабатывает при пуше со стороны
|
|
пользователя (он коммитит сам, но деплой забывает).
|
|
|
|
## Что предлагается
|
|
|
|
1. Подключить Gitea Actions: на каждый push в ветку `master` репозитория
|
|
`estorozhenko/dedinit.ru` (bigbox, gitea.nixg.ru) запускать workflow:
|
|
- checkout репозитория
|
|
- сборка Hugo: `make build` (hugo --minify)
|
|
- загрузка `public/` на Jino SFTP через существующий `tools/deploy_sftp.py`
|
|
2. Для этого:
|
|
- **снять mirror-статус** у `estorozhenko/dedinit.ru` в Gitea (на зеркале Actions не работают — штатное ограничение Gitea)
|
|
- синхронизацию gitverse → gitea перенести в крон-скрипт `git fetch + git push` (вместо mirror-интервала 8ч)
|
|
- деплой-секрет SFTP (пароль Jino) завести в Gitea Actions secrets
|
|
- раннер уже стоит и работает (bigbox-runner, v3.3.1, label `docker27-bash`)
|
|
|
|
## Затронутые сервисы и файлы
|
|
|
|
- `estorozhenko/dedinit.ru` (gitea.nixg.ru) — снятие mirror, включение Actions
|
|
- `/opt/dedinit.ru/.gitea/workflows/deploy.yml` — новый workflow
|
|
- `/opt/dedinit.ru/Makefile`, `tools/deploy_sftp.py` — без изменений (переиспользуются)
|
|
- `~/.ssh/config` / ssh-ключи — не нужны (деплой через пароль, как сейчас)
|
|
- Крон на bigbox: синхронизация gitverse→gitea (замена mirror-интервала)
|
|
|
|
## План отката
|
|
|
|
- Вернуть mirror-статус репозитория в Gitea (API `PATCH /repos/{owner}/{repo}` → `mirror:true`)
|
|
- Удалить `.gitea/workflows/deploy.yml` из репозитория (или отключить в настройках Actions)
|
|
- Удалить secrets SFTP из Gitea (пароль не скомпрометирован — он и так лежит в docs/)
|
|
|
|
## Прочие решения
|
|
|
|
- Ветка по умолчанию в репо — `main`, но задание «при пуше в master» — оформим триггер на `main`
|
|
(репо уже на main; в Gitea триггер по branch-шаблону). Уточним у пользователя, если нужен именно `master`. |