フィヨルドブートキャンプでは終盤に生徒の方と一緒になってみんなが使っているEラーニングシステム自体をスクラムで開発するカリキュラムがあります。
そこでのブランチ戦略を最近変えたので生徒の方への説明も兼ねて紹介します。
GitLab Flowです。
糸冬 わ り
だとあんまりなのでデプロイについても書きます。
(厳密にはpre-productionはなくて、master=唯一のステージングです)
リリース
デプロイはCloud Buildでgit pushをきっかけにmain = ステージング環境、production = 本番環境という具合でデプロイしています。
デプロイは週1回で、毎週水曜日のふりかえりミーティングの後にリリースしています。
master(main)にPRがマージされるとgit-pr-releaseでリリース用のPRが作成されます。
各担当者はステージング環境で動作確認したらここのチェックボックスにチェックを入れます。
そして各担当者は自分の実装したところをリリース文に書きます。
全部の動作確認が終わっていたらリリースします。(productionブランチにマージする)
本番環境にデプロイされたらDiscordに通知が来るので、各担当者は本番環境で動作確認をして、IssueをCloseします。
最近変えたところ
以前まではGitHub Flowだったんですが、やっぱりいきなり本番にアップされるのは怖いという声もあり、Git Flowを検討していました。
しかし@kakutaniさんからGit Flowは提唱者自身が
「Git FlowはGitHubとかなかった昔に作ったものだから別のFlowがいいよ」
と言っていると聞いてGitLab Flowを見たら良さそうだったので決めました。
みんなでリリース文を書くというのも、誰がどの機能を作ってくれたのか、学習中の方にも伝わって楽しいということで初めてみましたが好評な感じです。
次はmasterをmainに変えると作業をやる予定です。