2.8 KiB
2.8 KiB
Proposal: Автодеплой dedinit.ru через Gitea Actions при пуше в master
Проблема
Сейчас деплой dedinit.ru на Jino (SFTP) выполняется вручную: make build && export SSHPASS=... && make deploy.
Это требует присутствия человека, не даёт истории деплоев и не срабатывает при пуше со стороны
пользователя (он коммитит сам, но деплой забывает).
Что предлагается
- Подключить 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
- Для этого:
- снять 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)
- снять mirror-статус у
Затронутые сервисы и файлы
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.