Skip to content

chore: develop廃止に伴うdependabot刷新 + release公開トリガーのCD化 - #295

Merged
ukwhatn merged 8 commits into
mainfrom
feature/release-cd-and-dependabot
Jul 22, 2026
Merged

chore: develop廃止に伴うdependabot刷新 + release公開トリガーのCD化#295
ukwhatn merged 8 commits into
mainfrom
feature/release-cd-and-dependabot

Conversation

@ukwhatn

@ukwhatn ukwhatn commented Jul 22, 2026

Copy link
Copy Markdown
Member

概要

develop ブランチ廃止に伴い dependabot 設定を刷新し、デプロイのトリガーを main push から GitHub Release の公開に変更する。

やったこと

dependabot 設定の刷新(develop 廃止 + 規約準拠)

  • target-branch: develop を全 entry から削除(default branch = main を使用)
  • deprecated な reviewers キーを削除し assignees に集約
  • docker の 2 entry(/db, /discord)を directories で 1 entry に統合
  • version-updates を ecosystem ごとに 1 PR へグループ集約、security-updates は別グループで即時 PR
  • schedule を weekly に変更し、cooldown を追加
    • pip: default 3 日 / patch 1 日
    • github-actions / docker: default 3 日のみ(semver 別 cooldown は両 ecosystem 非対応)

デプロイの release トリガー化

  • on: push(main)on: release: types: [published] に変更
  • ガードを追加
    • pre-release では build / deploy を実行しない
    • サーバー側で release の commit が origin/main に含まれることを検証(main 外 commit の release を本番に載せない)
  • イメージタグに release タグ名を追加(:latest / :<sha> / :<サニタイズ済み tag_name>
    • / 等の Docker tag 非対応文字は - に置換

やらなかったこと

  • pip への /discord/db の追加(配下の pyproject / poetry.lock は root への symlink のため / のみで全依存をカバーできる)
  • docker-compose ecosystem の追加(compose.dev.yml / compose.prod.yml というカスタムファイル名を dependabot が検出できないため。dependabot-core#12134
  • develop 参照が残る他ファイルの整理(Makefile の pr:creategit switch develop するため現状 broken)、check_healthy.yml の branches: [main, develop]、sync-template / update-pr-labels)
  • main push 時のビルド検証 CI の追加(release まで build 失敗に気づけない構造への手当て)

影響範囲

  • dependabot の PR 作成先・頻度・粒度(daily 個別 PR → weekly グループ PR)
  • デプロイの実行タイミング(main push 時 → release 公開時。マージ後は release を公開しない限りデプロイされない

テスト方法

  • dependabot.yml: YAML parse 通過・directory 実在・cooldown の ecosystem 別対応を公式 docs で確認済み
  • deploy.yml: actionlint 通過、tag サニタイズはローカルで動作確認済み
  • マージ後、release を 1 件公開して build → deploy の成功を確認

チェックリスト

  • YAML parse / actionlint 通過
  • マージ後の初回 release でデプロイ成功確認

補足

https://claude.ai/code/session_01QAJGNVYDiLgpVXjSEiTg9Q

ukwhatn added 3 commits July 22, 2026 21:11
dependabotがpython:3.15.0b4-slimへbumpしたが、pyprojectはpython = "3.12.*"のためpoetry installが失敗しGHAビルドが落ちる。dependabotにはpythonイメージのmajor/minor更新をignoreさせ、patch更新のみ許可する。

Claude-Session: https://claude.ai/code/session_01QAJGNVYDiLgpVXjSEiTg9Q
- target-branch: developを削除(default branchのmainを使用)
- deprecatedなreviewersを削除しassigneesに集約
- pipにdiscord/dbの個別lockfileを追加(本番イメージが使う依存が未追跡だった)
- docker 2セクションをdirectoriesで統合
- version-updatesをecosystemごとに1PRへ集約、security-updatesは別グループで即時
- schedule weekly化 + cooldown(default 3日 / patch 1日)追加

Claude-Session: https://claude.ai/code/session_01QAJGNVYDiLgpVXjSEiTg9Q
- main pushではなくGitHub Releaseのpublishedイベントでbuild + deployを実行
- イメージにreleaseタグ名のタグを追加(:latest / :sha / :tag_name)

Claude-Session: https://claude.ai/code/session_01QAJGNVYDiLgpVXjSEiTg9Q
@ukwhatn ukwhatn self-assigned this Jul 22, 2026
ukwhatn added 5 commits July 22, 2026 21:26
- discord / db-migrator に image タグを明示し、buildx bake ビルドと
  compose up のイメージ参照を一致させる
- up:ci ターゲットを追加(--wait でヘルスチェック完了まで待機、
  ビルド済みイメージを使用するため --build なし)

Claude-Session: https://claude.ai/code/session_01N5gGjuCpmBNB88oXHTgeZZ
pull_request_target + デフォルトcheckoutはbaseブランチのコードを
ビルドするため、PRの変更が一切検証されていなかった(#294が
Dockerfileを修正してもCIが落ち続ける原因)。

あわせてCI全体を改善:
- concurrency で同一PRの多重実行をキャンセル
- timeout-minutes を設定
- buildx bake + GHAレイヤーキャッシュでビルドを高速化
- compose up --wait による起動待ちでリトライループを廃止
- ステータス・ログ出力とクリーンアップを if: always() で常時実行

Claude-Session: https://claude.ai/code/session_01N5gGjuCpmBNB88oXHTgeZZ
- pipのdirectoriesを"/"のみに戻す(discord/db配下のpyproject/poetry.lockはrootへのsymlinkで重複走査になるため)
- github-actions/dockerのcooldownからsemver-patch-daysを削除(両ecosystemはsemver別cooldown非対応)
- pre-release時はビルド・デプロイをskip
- release tag名をDocker tagとして使う前にサニタイズ(/等の非対応文字を-に置換)
- サーバー側でgithub.shaがorigin/mainのancestorであることを検証(main外commitのreleaseを本番に載せない)

Claude-Session: https://claude.ai/code/session_01QAJGNVYDiLgpVXjSEiTg9Q
- workflow に permissions: contents: read と persist-credentials: false を追加
- GHA cache scope をターゲット別に分離(デフォルト共通scopeでの上書き防止)
- Makefile の PHONY を .PHONY に修正
- dependabot.yml のignoreコメントを正確な表現に修正(security updateは対象外)

Claude-Session: https://claude.ai/code/session_01N5gGjuCpmBNB88oXHTgeZZ
…e-cd-and-dependabot

# Conflicts:
#	.github/dependabot.yml
@ukwhatn
ukwhatn marked this pull request as ready for review July 22, 2026 12:43
@ukwhatn
ukwhatn merged commit 623218f into main Jul 22, 2026
2 of 3 checks passed
@ukwhatn
ukwhatn deleted the feature/release-cd-and-dependabot branch July 22, 2026 12:43
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