こんにちは
今回は CodePipeline で v2 を使うことがあったので、それの検証をここに書いていきます
ちなみに、v1 と v2 の違いは公式ドキュメントをちぇけらしてください
https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/pipeline-types-planning.html
それではやっていきますー
▼v1 から v2 への移行方法
まずは簡単に移行してみて、既存のデプロイ機構が動くかどうかを確認します
・デプロイ機構
ローカルからGitHubのレポジトリ(mainブランチ)へプッシュ → CodePipelineが発火 → CodeBuildが実行され、Dockerイメージのビルド → CodeDeployが実行されて、ECSへデプロイ
・手順
CodePipeline > パイプライン > 対象パイプライン > 編集 > パイプラインタイプで V2 を選択 > 保存
→設定タブからパイプラインが v2 になっていることを確認
・デプロイ実行
→問題なくデプロイが成功することを確認
▼COMMIT_ID を指定してデプロイする
V2 では特定のコミットIDでパイプラインを開始するために、ソースリビジョンIDを「オーバーライド」として指定できる
なお、COMMIT_IDとはこれまでにGitHub上へコミットしたものから選択することになる
CodePipeline > パイプライン > 対象パイプライン > 変更をリリースする > ソースリビジョンの上書き > コミットID > コミットIDを指定 > リリースする
→問題なくデプロイが成功することを確認
▼トリガーブランチを追加してみる
v2 で追加されたトリガーを利用して、トリガーブランチを追加し、そのブランチへプッシュされた際にもパイプラインが実行されるようにする
・作成したGitHubのtestブランチへプッシュする
→コードパイプラインが実行されることと、アプリが更新されることを確認
▼トリガータグを追加してみる
v2 で追加されたトリガーを利用して、トリガータグを追加し、そのタグへプッシュされた際にもパイプラインが実行されるようにする
・タグをつけてプッシュする
(※tagは特定のコミットに対して付与され、コミットを指定せずにtagをつけた場合は、現在のブランチの最新のコミットに対して付与される)
git tag latest
git push origin latest
→コードパイプラインが実行されることと、アプリが更新されることを確認
・latest 以外のタグを付与して、プッシュしてみる
git tag v1
git push origin v1
→コードパイプラインが実行されないことを確認
★タグを利用する場合は、トリガーに設定したブランチとタグが一致している場合のみパイプラインが実行される
▼プルリクエストをトリガーにする
・mainブランチへのプルリクエストがクローズされたタイミングでコードパイプラインが実行されるようにする
・GitHub上でリモートのtestブランチへプッシュし、mainブランチへマージするためのプルリクエストを作成する
・当該プルリクエストをマージして、クローズする
→このタイミングでコードパイプラインが実行されるされることを確認
以上が検証結果となりますので、ご参考になれば幸いですーー



