LoginSignup
3
2

More than 3 years have passed since last update.

AWS CodePipeline メモ 複数ブランチの追跡

Last updated at Posted at 2020-10-06

更新日:2019/10/06

目的

現状

CodePipelineの設定画面で、Githubを選択した場合、ブランチ選択が必須になっている

ゴール

Master以外のいずれのブランチにPushされてもCodePipelineが発火し、デプロイされてほしい

なぜやりたいか?

  • 他のCIツールでは複数ブランチからの発火ができている。
  • 同じことやりたい

AWS CodePipelineの仕様


複数ブランチの選択

スタックオーバーフロー

AWS CodePipelineで複数ブランチのTrackingしたい

以下のスタックオーバーフローで質問あり
Can AWS CodePipeline track multiple feature branches and run tests on each? - Stack Overflow

提案された解決法は以下

  • 1. AWS Lambdaを使用して動的にパイプラインを作成(複製)する。
  • 2. 外部CIを使ってCodePipelineに反映

※2019年現在もAWSには複数ブランチ対応はされていない

1. 動的にパイプラインを作成

残念ながら、CodePipelineの複数のブランチからビルドをトリガーすることはできません。
私が使用した他のすべてのCIツールがすぐにこの機能を提供するため(GitLabCI、TravisCI、CircleCI、Bitbucket Pipelines、TeamCity)少し驚きです。

以下を参考にPushのたびに動的にパイプラインを作成する方法

nicolai86/awesome-codepipeline-ci: an AWS CodePipeline, AWS CodeBuild, AWS APIGateway & AWS Lambda CI

2. 外部CIを使う

仕様について

Serverless CI/CD for the enterprise on AWS

aws-quickstart/quickstart-trek10-serverless-enterprise-cicd: AWS Quick Start Team

情報

GitHub/CodeBuild/CodePipelineを利用してCloudFormationのCI/CDパイプラインを構築する | DevelopersIO

CodePipelineの場合、GitHubをアクションに指定すると1ブランチ1パイプラインで設定するようです

cloud formation

AWS CodePipelineをCloudFormationで構築してみた | DevelopersIO

設定にBranchは必須のようである

 Branch:
    Type: String
    Description: GitHub Branch

match

AWS::CodePipeline::Webhook WebhookFilterRule - AWS CloudFormation

ここで指定した値が「refs/heads/{Branch}」であり、ターゲットアクションのアクション設定プロパティが「Branch」という名前で値が「master」である場合、MatchEquals 値は「refs/heads/master」として評価されます。

AWS 仕様

CodePipeline パイプライン構造のリファレンス - CodePipeline

GitHub > Branch > 必須

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2