きっかけ
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