From aebac76d61a36cfa446b29b895be8a023d691f31 Mon Sep 17 00:00:00 2001 From: merge-check <140916359+agentHits@users.noreply.github.com> Date: Wed, 11 Nov 2026 03:59:43 -0500 Subject: [PATCH] ci(deps): rebuild the update branch on every push to AgentHits-Dev The update branch was rebuilt only by the daily schedule (which GitHub often starts hours late) or by hand. Between rebuilds AgentHits-Dev moved on, so the checks of the open update PR ran against an outdated base and their verdict on the libraries could be wrong in both directions: a failure already fixed in the base, or a pass that no longer holds with newer code. The workflow now also runs on every push to AgentHits-Dev, so the branch is always rebuilt from the latest base commit and the checks it dispatches run on it. Concurrency now cancels a run in progress: only the run on the latest commit matters. Cancelling in the middle of publish is safe, because the next run builds from a newer base, gets a different tree, pushes and dispatches the checks again. There is no loop: the branch is pushed with GITHUB_TOKEN, which starts no push workflows, and a merge of the update PR finds nothing left to update and closes the branch. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/deps-auto-update.yml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/deps-auto-update.yml b/.github/workflows/deps-auto-update.yml index e4a15023a4..cb860e5883 100644 --- a/.github/workflows/deps-auto-update.yml +++ b/.github/workflows/deps-auto-update.yml @@ -1,17 +1,20 @@ # Автообновление зависимостей Bun, как deps-auto-update.yml в других проектах владельца (решение # 2026-10-27; заменило Dependabot для Bun: тот двигает только прямые зависимости, а security-обновлений для # Bun у него нет). -# Каждый день: bun update всего lockfile в пределах диапазонов package.json - minor и patch, прямые и +# bun update всего lockfile в пределах диапазонов package.json - minor и patch, прямые и # транзитивные пакеты, свежие версии сразу после выхода; затем bun audit. Итог - ветка deps/auto-update и один PR в -# AgentHits-Dev. Пока PR не влит, ветка каждый день пересобирается от свежей AgentHits-Dev с самыми новыми -# версиями. Чужой commit в ветке открытого PR останавливает пересборку до merge или закрытия PR. Workflow не -# мержит и не деплоит. +# AgentHits-Dev. Пока PR не влит, ветка пересобирается от свежей AgentHits-Dev с самыми новыми версиями +# после каждого push в AgentHits-Dev и раз в день: проверки PR всегда идут на последнем commit базы, а не на +# устаревшей, и отчёт по библиотекам правдив. Чужой commit в ветке открытого PR останавливает пересборку до +# merge или закрытия PR. Workflow не мержит и не деплоит. # Отличия от других проектов: база AgentHits-Dev, проверки ветки - CI_WORKFLOWS, bun workspaces (общий # bun.lock в корне) обновляются через bun update --recursive. Файл одинаковый в dokploy и dokploy-mcp, кроме # значения CI_WORKFLOWS: образ панели собирается только в dokploy. name: Deps auto-update on: + push: + branches: [AgentHits-Dev] schedule: - cron: "0 3 * * *" # каждый день, 03:00 UTC workflow_dispatch: @@ -19,9 +22,11 @@ on: permissions: contents: read +# Нужен только прогон на последнем commit базы: новый push отменяет прогон на устаревшем. Отмена посреди publish +# безопасна: следующий прогон собирает ветку от более новой базы, дерево другое, и он пушит и запускает проверки. concurrency: group: deps-auto-update - cancel-in-progress: false + cancel-in-progress: true env: BRANCH: deps/auto-update @@ -105,7 +110,7 @@ jobs: : > "$out/changes.txt" : > "$out/audit.txt" { - echo "Автообновление зависимостей от $today (workflow \`deps-auto-update\`): \`bun update\` в пределах диапазонов \`package.json\`, только minor и patch, прямые и транзитивные пакеты, свежие версии сразу после выхода. Ветка пересобирается каждый день в 03:00 UTC, пока PR открыт." + echo "Автообновление зависимостей от $today (workflow \`deps-auto-update\`): \`bun update\` в пределах диапазонов \`package.json\`, только minor и patch, прямые и транзитивные пакеты, свежие версии сразу после выхода. Пока PR открыт, ветка пересобирается от последнего commit \`AgentHits-Dev\` после каждого push в неё и каждый день в 03:00 UTC." echo for dir in $DEP_DIRS; do prefix="" @@ -148,7 +153,7 @@ jobs: echo done echo "---" - echo "Перед merge: зелёные прогоны \`$CI_WORKFLOWS\` с событием \`workflow_dispatch\` на голове PR (workflow запускает их сам: push от GITHUB_TOKEN событие pull_request не создаёт). Commit в эту ветку останавливает ежедневную пересборку. Major - отдельными PR." + echo "Перед merge: зелёные прогоны \`$CI_WORKFLOWS\` с событием \`workflow_dispatch\` на голове PR (workflow запускает их сам: push от GITHUB_TOKEN событие pull_request не создаёт). Commit в эту ветку останавливает пересборку. Major - отдельными PR." } > "$out/report.md" total="$(wc -l < "$out/changes.txt" | tr -d ' ')"