CI/CDを使ったGit、GitHub、Herokuへの自動開発フロー

最近では、CircleCIなどのCI/CDツールを使ったテスト→ビルド→デプロイを自動化した開発が一般的です。今回はそれらを使った一般的な開発フローをまとめておきます。


Gitのブランチの考え方

Gitのブランチの構成は様々な考えがあるのでどれが正解かなどありませんが、今回はGit-flowのブランチ戦略を基準に考えていきます。構成としては主に3つのブランチが中心となります。

  • master(main)

本番環境でのブランチ
実際に運用されている

  • develop

テスト環境のブランチ
その開発の最新の状態である
masterブランチから分岐

  • feature(名前任意)

機能ごとにあるブランチ
developブランチから分岐

これに加えてreleaseやhotfixなどのバグや不具合時のブランチがあります。基本的にfeatureブランチで新しい機能などを開発し、feature→develop→masterの順番でマージしていきます。ちなみにGitHub-flowなどのブランチ戦略ではdevelopブランチはないようです。

CI/CDとHerokuを使った開発

CI/CDについては別の記事で書くので、今回はその運用方法について書いていきます。自分の場合は以下のようにして開発しています。

  • 本番環境

develop→masterにマージするとCircleCIで自動的にテスト→デプロイ

  • テスト環境

feature→developにマージするとCircleCIで自動的にテスト→デプロイ

  • 機能追加確認用環境

developブランチから切り分けて、機能別にブランチ作成。GitHub actionsでPRを出したらherokuのstagingに自動で環境構築→テスト→デプロイ。具体的には前に書いた記事を見てください。
HerokuでGitHubと直接連携せずに確認用アプリを作る(2022年5月) - Hackノート