Skip to content

CDのデプロイ対象を明示列挙方式に変更#23

Merged
masaya-osuga merged 1 commit into
mainfrom
fix/cd-explicit-deploy-targets
Jun 20, 2026
Merged

CDのデプロイ対象を明示列挙方式に変更#23
masaya-osuga merged 1 commit into
mainfrom
fix/cd-explicit-deploy-targets

Conversation

@masaya-osuga

Copy link
Copy Markdown
Member

背景・課題

CD の deploy matrix は cmd/* を自動走査して、末尾 -api を Cloud Run Service、それ以外を Cloud Run Job として分類していた。

この方式だと、デプロイすべきでないターゲットまで Cloud Run Job として登録される問題があった:

  • atlas-loader … Atlas が GORM スキーマを読むための ビルド時専用ツール。Dockerfile / mise のビルド対象からは正しく除外されており、イメージに /bin/atlas-loader は存在しない。
  • migrate / apply-table-privileges … 今回の運用ではデプロイ対象に含めない方針。

実際、過去の CD 実行で gcloud run jobs deploy atlas-loader が成功し、dev/prd に 実行すると必ず失敗する空振りジョブが作られていた(jobs deploy はコンテナを起動せず定義登録のみのため、バイナリ不在が deploy 時に検知されない)。

変更内容

set-env/action.yml の matrix 生成を cmd/* 自動走査から DEPLOY_TARGETS による明示列挙 に変更。

デプロイ対象を以下に限定:

name type
academic-api service
announcement-api service
user-api service
build-class-change-notifications-job job
dispatch-notifications-job job

除外: atlas-loader / migrate / apply-table-privileges

  • *-api → service / それ以外 → job の分類ロジックは流用(個別 type 指定不要)
  • リストに書いたが cmd/<name> が存在しない場合は fail(タイポ検知)
  • output description / cd.yml のコメントも実態に合わせて更新

残作業(GCP 側・手動)

本 PR では既存ジョブは削除されない。不要ジョブは別途 GCP 側で削除が必要:

```bash
for env in "" "-dev"; do
for job in atlas-loader migrate apply-table-privileges; do
gcloud run jobs delete "${job}${env}" --region asia-northeast1 --project swift2023groupc
done
done
```

⚠️ migrate をデプロイ対象から外すため、DB マイグレーション適用は別手段(ローカルから mise run migrate:apply 等)での運用になる点を確認してください。

🤖 Generated with Claude Code

cmd/* を自動走査する方式だと、ビルド時専用ツール (atlas-loader) や
デプロイ不要なジョブ (migrate, apply-table-privileges) まで Cloud Run
Job として登録されてしまう。イメージに該当バイナリが無いため、実行すると
必ず失敗する空振りジョブが dev/prd に作られていた。

set-env の matrix 生成を DEPLOY_TARGETS による明示列挙に変更し、
デプロイ対象を以下に限定する:
- service: academic-api / announcement-api / user-api
- job: build-class-change-notifications-job / dispatch-notifications-job

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@kantacky kantacky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

別PRでもいいけど、mainにマージするときのデプロイ先をstgにして良さそう

@masaya-osuga masaya-osuga added this pull request to the merge queue Jun 20, 2026
Merged via the queue into main with commit afb1c58 Jun 20, 2026
3 checks passed
@masaya-osuga masaya-osuga deleted the fix/cd-explicit-deploy-targets branch June 20, 2026 09:40
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.

2 participants