Skip to content

ci: cut one agenthits release per batch of merged PRs - #102

Merged
agentHits merged 1 commit into
AgentHits-Devfrom
ci/release-per-batch
Oct 27, 2026
Merged

agentHits merged 1 commit into
AgentHits-Devfrom
ci/release-per-batch

Conversation

@agentHits

Copy link
Copy Markdown
Collaborator

Зачем

Сейчас каждый влитый PR сразу получает свою версию agenthits-vX.Y.Z, и версий выходит слишком много. Владелец попросил выпускать одну общую версию на пачку изменений, примерно на 20 коммитов.

Что изменится

  • Каждый push в AgentHits-Dev, как и раньше, собирает образ agenthits-dev, и панели обновляются так же. Версия такой сборки в панели выглядит как agenthits-v1.0.5-3-g<sha>: прошлый релиз плюс три коммита.
  • Релиз agenthits-vX.Y.Z выходит автоматически, когда с прошлого релиза влито 20 PR. Порог задаёт RELEASE_EVERY: 20 в .github/workflows/agenthits-release.yml.
  • Готовую пачку можно выпустить раньше ручным запуском: gh workflow run agenthits-release.yml --repo TaskFlow-Systems/dokploy --ref AgentHits-Dev (по умолчанию patch; -f bump=minor или -f bump=major задают часть версии явно).
  • В заметки релиза попадают заголовки и описания всех PR пачки.
  • Правило номера не изменилось: patch; minor, если в пачке есть PR с заголовком на feat; major только вручную.
  • .github/scripts/agenthits-next-release.sh считает изменения с прошлого тега и при push ниже порога собирает только образ. В summary запуска появляется строка вида «3 of 20 changes since agenthits-v1.0.5».
  • В CLAUDE.md раздел Releases описывает новый порядок.

Слияние этого PR само версию не выпустит: его push уже идёт по новому правилу.

Проверки

  • Скрипт прогнан локально на копии репозитория:
    • push при 1 из 20 изменений отдаёт build=true без тега, то есть собирается только образ;
    • ручной запуск и push при пороге 1 выпускают agenthits-v1.0.4 с заметками зависимости: автообновление библиотек #91;
    • bump=minor даёт v1.1.0;
    • без новых коммитов build=false.
  • actionlint для agenthits-release.yml и agenthits-image.yml и shellcheck для скрипта прошли без замечаний.

Что проверить вручную

После слияния откройте в Actions запуск «AgentHits Release» для этого push. В summary должна быть строка «N of 20 changes since …», образ agenthits-dev должен быть собран, а нового релиза быть не должно.

🤖 Generated with Claude Code

Что:
- agenthits-release.yml: каждый push в AgentHits-Dev, как и раньше, собирает образ (agenthits-dev, agenthits-dev-<sha12>), а релиз agenthits-vX.Y.Z выходит только когда с прошлого релиза влито 20 PR (RELEASE_EVERY) или по ручному запуску workflow.
- agenthits-next-release.sh: считает изменения с прошлого тега по first-parent; при push ниже порога отдаёт только сборку образа и пишет «N of 20» в summary; ручной запуск выпускает всё накопленное, заметки по-прежнему собирают все PR с прошлого тега.
- agenthits-image.yml: комментарий о вызове без тега релиза.
- CLAUDE.md: раздел Releases описывает выпуск версий пачками.
Зачем:
- Владелец просил одну версию на пачку изменений (примерно на 20 коммитов), а не новую версию на каждый влитый PR.
Риски:
- Между релизами панель показывает версию сборки как agenthits-vX.Y.Z-N-g<sha12>: прошлый релиз плюс N коммитов.
- Заметки большого релиза длинные: в них описания всех PR пачки.
Проверки:
- Скрипт прогнан локально на копии репозитория: push при 1 из 20 изменений отдаёт build=true без тега; ручной запуск и push при пороге 1 выпускают agenthits-v1.0.4 с заметками #91; bump=minor даёт v1.1.0; без новых коммитов build=false.
- actionlint для agenthits-release.yml и agenthits-image.yml и shellcheck для скрипта — без замечаний.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@agentHits
agentHits merged commit d01c010 into AgentHits-Dev Oct 27, 2026
3 checks passed
@agentHits
agentHits deleted the ci/release-per-batch branch October 27, 2026 16:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant