はじめに
ソースビルドした段階でCodeCommitにタグを発行したかったのでいろいろいじってみた。
シンプルにそれだけやってみた、短め備忘録
前提条件
CodeBuildの構築は終わっている。
CodeBuildのほとんどのステージ処理の記載も終わっている。
やったこと
1.post_buildステージにGitタグ作成用のシェルを用意して、呼び出しした
post_build:
on-failure: ABORT
commands:
- export RELEASE_DATETIME=$(date +"%Y%m%d%H%M%S")
- ./script/git_create_tag.sh
2.スクリプトの中身を書いた
dir = "Gitを取ってきた、適当な場所に"
cd $dir
# もっといいものがあるはずだが、emailとかとかは必要
git config user.email "codebuild@example.com"
git config user.name "codebuild"
# Cloneはできていたのでいけるかとも思ったが、下記追加しないとうまくいかなかった
git config credential.helper '!aws codecommit credential-helper $@'
git config credential.UseHttpPath true
# タグ名を作成、yamlでいじった環境変数使えるかテストしてみた
TAG_NAME="tag-test-${RELEASE_DATETIME}"
# タグを作ってプッシュ
git tag $TAG_NAME
git push origin $TAG_NAME
最後に
ロールは普通Pullオンリーだと思うので、Push権限も追加した。
CodeBuildからのPushはtagのみとかにするのであれば多少考える必要あり
CodeBuild内でCommitすることとかほぼないと思いますけども・・・
少なくともForce Pushさせなければ、変な事故が起きても何とかなりそう