こんにちわ
今回はほとんど自分用のメモのようなものですが、CodeBuildのbuildspecでAWSアカウントIDによって処理を分岐させてみたのでここに残しておきます
※AWSの構成などは全く書かないのでご了承ください
▼失敗編
version: 0.2
phases:
pre_build:
commands:
- aws --version
# 環境変数の設定
- AWS_ACCOUNT_ID=${AWS_ACCOUNT_ID}
build:
commands:
~省略~
post_build:
commands:
- echo Writing image definitions file depending on AWS_ACCOUNT_ID
- if [${AWS_ACCOUNT_ID} = "XXXXXXXXX"] ; then sed -i -e "s#<project>#$project#g" module/codebuild/taskdef.json else echo "Account ID is incorrect" fi
artifacts:
files:
~省略~
→ 下記エラーが出ました(当然ですね、、、)
/codebuild/output/tmp/script.sh: line 9: syntax error: unexpected end of file
▼成功編
version: 0.2
phases:
pre_build:
commands:
- aws --version
# 環境変数の設定
- AWS_ACCOUNT_ID=${AWS_ACCOUNT_ID}
build:
commands:
~省略~
post_build:
commands:
- echo Writing image definitions file depending on AWS_ACCOUNT_ID
- |
if [ $AWS_ACCOUNT_ID = "XXXXXXXXXX" ] ; then
sed -i -e "s#<project>#$project#g" module/codebuild/taskdef.json
else
echo "Account ID is incorrect"
fi
artifacts:
files:
~省略~
→ いわゆる literal style を利用した書き方になり、成功すれば特段何も出力されません
▼まとめ
いかがでしたでしょうか?
あまり実用性はないかもしれませんが、案件によってはAWSアカウントを横断するかもしれないので、良ければお使いくださいー