chore(deploy): триггерить деплой на правку ops/docker-prune.sh #2888
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2888
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "chore/deploy-trigger-ops-prune"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проблема
Довесок к #2887 — нашёл сразу после мержа, проверяя, доехал ли скрипт до прода.
ops/docker-prune.shисполняется на VM по cron из/opt/gendesign/ops/. Файлы туда попадают единственным путём — шагомgit reset --hard origin/mainвнутриdeploy.yml.Но paths-фильтр
deploy.ymlперечисляет подпутиops/поимённо, а неops/**:#2887тронул толькоops/docker-prune.shи.forgejo/workflows/ci*.yml— ни один из двух деплой-workflow не сматчился. Проверено на проде после мержа:При этом cron уже стоял и указывал в пустоту:
Правки скрипта и дальше доезжали бы только случайно — со следующим чужим коммитом в
backend/илиdata/sql/.Это уже второй раз
Ровно тот же класс бага уже ловили на
ops/db-bootstrap/**— рядом в файле стоит комментарий с той же формулировкой: «без этого триггера правка bootstrap-файла молча не доезжала бы до прода до следующего чужого коммита в backend/».Что сделано
ops/docker-prune.shдобавлен вpaths:deploy.ymlпо образцуdb-bootstrap..claude/rules/deploy.md— явное предупреждение, чтоops/**целиком не триггерит, и любой новый исполняемый на VM файл вops/надо вносить вpaths:руками. Чтобы не наступить на это третий раз.Прод уже починен вручную
Не стал ждать деплоя — скрипт доставлен из git (не копипастой, чтобы не было расхождения с main):
Cron в воскресенье отработает штатно. Ближайший
git reset --hardперезапишет файл тем же содержимым — расхождения нет.Test plan
check yamlв pre-commit прошёл/opt/gendesign/ops/уже штатным путёмЧто осталось за рамками
docker-prune.shудаляет только остановленные контейнеры. На проде висят три job-контейнера runner'а в статусеUpвозрастом 4-8 недель (FORGEJO-ACTIONS-TASK-7610_...JOB-build-frontendи два...JOB-changes) — они держат память и под текущую уборку не попадают. Это отдельная проблема, разбирается отдельно.