はじめに
Web開発やデータ基盤などAWS環境で様々なCI/CD開発を行ってきました。
本記事は、「GitHub-flow」「Git-flow」による開発、本番環境へのデプロイフロー(CI/CD)について後述しました。
環境やお作法などで、実装方法は異なってきますが、もし迷ったら本記事をご参考ください!!
承認機能などの細かい機能については、後述してませんのでご注意ください
GitHub-flowの概要
- featureブランチ: mainブランチから分岐。開発環境へデプロイするためのブランチ。新機能や修正に使用。
- mainブランチ: 本番環境へデプロイするためのブランチ。
GitHub-flowのデプロイフロー
開発環境(featureブランチ)へのデプロイ
- featureブランチへプッシュすると、ビルド・テストが行われ、正常であれば開発環境へ自動デプロイされる。
本番環境(mainブランチ)へのデプロイ
- featureブランチからmainブランチへプルリクエストを作成すると、自動テスト・ビルドが行われる。
- 正常であれば本番環境へ自動デプロイされる。
Git-flowの概要
本3種類のブランチのみで実装可能です
- featureブランチ: developブランチから分岐。新機能の開発に使用。
- developブランチ: mainブランチから分岐。開発環境へデプロイするためのブランチ。
- mainブランチ: 本番環境へデプロイするためのブランチ。
少し難しいですが、使いこなすと作業効率が上がります
- releaseブランチ: developブランチから分岐。リリース前の最終調整やバグ修正に使用。
- hotfixブランチ: mainブランチから分岐。本番環境で発見された緊急のバグ修正に使用。
Git-flowのデプロイフロー
開発環境(developブランチ)へのデプロイ
- feature or releaseブランチからdevelopブランチへプルリクエストを作成すると、自動テスト・ビルドが行われる。
- feature or releaseブランチへpushすると、自動テスト・ビルドが行われる。
- テスト・ビルドが正常であればマージを行い、開発環境へ自動デプロイされる。
本番環境(mainブランチ)へのデプロイ
- develop or hotfixブランチからmainブランチへプルリクエストを作成すると、自動テスト・ビルドが行われる。
- feature or releaseブランチからdevelopブランチへマージすると、自動テスト・ビルドが行われる。
- テスト・ビルドが正常であればマージを行い、本番環境に自動デプロイされる。