1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS CodeBuildでソースのブランチによって処理をわける

Posted at

この記事は個人の備忘録です。

やりたいこと

  • 1つのビルドプロジェクトで複数のブランチに対応したい

図にすると、

image.png
これを

image.png
こうしたい

やり方

AWS CodeBuild には、ビルドコマンドで使用できる環境変数が用意されているので、それで条件分岐させる。

今回はCODEBUILD_INITIATORというCodePipelineの名前の環境変数で分岐させることにしました。

ProPopelineとDevPipelineがProブランチとDevブランチを監視しており変更があれば、ターゲットのPipelineを通じてCodeBuildにわたるという仕組みです。

本当はPipelineも1つにしたかったのですが、とりあえず、今回はCodeBuildのみを1つにまとめてみました。

build spec yml例

version: 0.2

phases:
  build:
    commands:
      - echo "CODEBUILD_INITIATOR: $CODEBUILD_INITIATOR"
      - |
        if [[ "$CODEBUILD_INITIATOR" == "codepipeline/DevPipeline" ]]; then
          export S3_BUCKET="**********" # S3_BUCKET名を環境ごにわけたりする
          echo "Environment: DEV"
        elif [[ "$CODEBUILD_INITIATOR" == "codepipeline/ProPopeline" ]]; then
          export S3_BUCKET="**********"
          echo "Environment: PRO"
        else
          echo "Unknown initiator. Exiting."
          exit 1

まとめ

こんな感じで無事にブランチごとに乱立しており管理が煩雑だったCodeBuildのプロジェクトを1つにまとめてることができました。

次はPipelineも1つにしたいです。

リファレンス

CodeBuildで使える環境変数

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?