CodeBuildの中でブランチ名を利用する。


きっかけ

CodeBuildの中でブランチ名を取得し、
Dockerレジストリにプッシュしようとしたらうまくできなかった。

[Container] 2019/05/30 03:11:39 Running command IMAGE_TAG=$(git branch | grep \* | cut -d ' ' -f2) 

[Container] 2019/05/30 03:11:39 Running command git branch 
* (no branch) 
  develop 
  master 

oh...
no branch...

取得方法

githubのwebhookからブランチ名が取れるので、それを活用した。

参考:
https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/build-env-ref-env-vars.html

環境変数[CODEBUILD_WEBHOOK_TRIGGER]は、ブランチにコミットをプッシュした場合、
[branch/branch-name]といった形で設定が入るらしい。

以下の通り変数を参照すると、ブランチ名だけ取り出せる。

${CODEBUILD_WEBHOOK_TRIGGER#branch/}

※[#branch/]は環境変数から、文字列[branch/]を取り除くために書いています。

この通り

[Container] 2019/05/30 04:34:54 Running command IMAGE_TAG=${CODEBUILD_WEBHOOK_TRIGGER#branch/} 

[Container] 2019/05/30 04:34:54 Running command echo ${CODEBUILD_WEBHOOK_TRIGGER#branch/} 
develop