Skip to content

CDワークフローを構築#19

Merged
masaya-osuga merged 11 commits into
mainfrom
deploy-workflow
Jun 20, 2026
Merged

CDワークフローを構築#19
masaya-osuga merged 11 commits into
mainfrom
deploy-workflow

Conversation

@masaya-osuga

Copy link
Copy Markdown
Member

No description provided.

@masaya-osuga masaya-osuga self-assigned this Jun 14, 2026
masaya-osuga and others added 3 commits June 15, 2026 16:57
Dockerfile のビルド対象と deploy.yml の Cloud Run Service 更新対象に
announcement-api / user-api を追加し、3 つの HTTP API すべてが
イメージに同梱・デプロイされるようにした。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
並行グループ名のプレフィックス ci- を外し、ワークフロー名と
ref のみで一意になるよう簡素化した。あわせて mise の version
ピン留めを廃止し、デフォルトの最新版を使うようにした。
ファイル名とワークフロー名を CD に統一し、手動実行の入力を
environment から environment_name (必須・デフォルトなし) に変更した。
並行グループ名も環境ごとに分離する形へ見直し、誤った環境への
取り違えを防ぐようにした。ビルド・デプロイ処理自体は従来と同等。
@kantacky kantacky marked this pull request as draft June 15, 2026 13:12
kantacky and others added 4 commits June 15, 2026 22:15
単一サービス前提だった出力を見直し、cmd/* から
デプロイ matrix を自動生成する set-matrix ステップを追加した。

- service_name 出力を廃止し、サービス/ジョブ名へ付与する
  service_suffix 出力に置き換え(prod は空)
- image_tag をサービス名非依存にし、全 cmd ターゲットで
  1 つのイメージを共有する形へ変更
- cmd/* を走査し、末尾 "-api" を Cloud Run Service、
  それ以外を Job として分類した matrix を出力

このコミットでは set-env アクション単体の出力定義のみを変更し、
利用側ワークフローの変更は次コミットで扱う。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
単一サービスのデプロイから、cmd/* 由来の matrix で各ターゲットを
並列デプロイする方式へ切り替えた。サービス/ジョブの増減に
ワークフロー編集なしで自動追従できる。

- build-and-push を 1 回だけ実行し、共有イメージを生成・プッシュ
- deploy ジョブに set-env が出力する matrix を適用し、
  service_suffix と組み合わせてサービス/ジョブ名を構築
- *-api は deploy-cloudrun で Service デプロイ、それ以外は
  gcloud run jobs deploy で Job を作成/更新(実行はしない)。
  いずれも共有イメージの起動コマンドを /bin/<name> に切り替え
- 不要になった env(REGION/AR_REPOSITORY/IMAGE_NAME)を削除
- ポリシーに従い各 action をタグから SHA 固定に変更
  (Renovate 用にタグをコメント併記)

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

Copy link
Copy Markdown

レビュー

全体的に CD ワークフローの初期構築として良い方向です。いくつか気になる点を挙げます。


1. prd vs prod の不一致(Bug)

workflow_dispatch の選択肢に prd がありますが、suffix 判定は "$ENVIRONMENT" = "prod" をチェックしています。prd を選択した場合、suffix が空にならず -prd になり、Cloud Run リソース名が意図しないものになります。

options:
  - dev
  - stg
  - prd   # ← ここ
if [ "$ENVIRONMENT" = "prod" ]; then   # ← "prd" とマッチしない

prdprod に統一するか、条件を "prd" に合わせる必要があります。

2. Actions のタグ参照 → SHA 固定推奨

actions/checkout@v6, google-github-actions/auth@v2 等がタグ参照です。サプライチェーン攻撃防止のため、SHA 固定(+ タグをコメント併記)が推奨されます。PR #21 ではこの対応がされているので、こちらも合わせるとよさそうです。

3. secrets vs vars の使い分け

GCP_PROJECT_IDsecrets で参照されていますが、project ID は機密情報ではないので vars の方が適切では? PR #21 では vars.PROJECT_ID に切り替わっています。

4. concurrency group の null 問題

group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.environment_name }}

push イベント時は github.event.inputs.environment_name が空文字列になり、group 名末尾が - で終わります。機能上は問題ありませんが、意図的かどうか確認したいです。

5. CI 変更について

  • concurrency group の ci- prefix 削除、mise バージョンピン解除は問題ないと思います。
  • mise のバージョンピンを外した場合、CIの再現性が下がるリスクがありますが、404 問題の回避としては妥当です。

6. Dockerfile の変更

announcement-apiuser-api のビルド追加は OK です。atlas-loader がビルド対象に含まれていない点は意図的と理解しています(ローカルツールのため?)。

CD ワークフローを cmd/* 由来の matrix による並列デプロイへ刷新
Comment thread .github/actions/set-env/action.yml
Comment thread .github/actions/set-env/action.yml Outdated
Comment thread .github/workflows/cd.yml
Comment thread .github/workflows/cd.yml Outdated
masaya-osuga and others added 2 commits June 20, 2026 13:53
workflow_dispatch の選択肢 prd と判定条件 prod の不一致を解消し、
prd 選択時にサフィックスが正しく空になるよう修正。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
サブモジュールは存在せず、Docker ビルドは git 履歴も使わないため
submodules: true と fetch-depth: 0 を削除。

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.

やってみよう

@masaya-osuga masaya-osuga enabled auto-merge June 20, 2026 05:02
@masaya-osuga masaya-osuga added this pull request to the merge queue Jun 20, 2026
Merged via the queue into main with commit b9f7662 Jun 20, 2026
3 checks passed
@masaya-osuga masaya-osuga deleted the deploy-workflow branch June 20, 2026 05:05
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