dullwhaleのメモ帳

何度も同じことを調べなくてよいように...

Codebuildで最新のビルドをAWS CLIを用いて再実行

Codebuildでたくさんのビルドプロジェクトの最新のビルドを再実行したいときは次のようにすれば良い。 grepの部分で必要なビルドだけ抽出したり、除外したりする。

最新のビルドを再実行する

# dry-run
aws codebuild list-builds | jq --raw-output --monochrome-output ".ids[]" | awk -F':' '!a[$1]++' | grep 'foo' | xargs -I {} echo aws codebuild retry-build --id {} > /dev/null
# 実際に実行
aws codebuild list-builds | jq --raw-output --monochrome-output ".ids[]" | awk -F':' '!a[$1]++' | grep 'foo' | xargs -I {} aws codebuild retry-build --id {} > /dev/null

xargsにPオプションをつけて並列にリクエストを投げることも可能だが、あっという間にレートリミットに引っかかる。並列数は2程度が限度だろう。

不要なビルドを削除する

aws codebuild batch-delete-buildsを使うとビルドを削除できる。ビルドプロジェクトは削除されない。

aws codebuild list-builds | jq --raw-output --monochrome-output ".ids[]" | grep "bar" | xargs -I {}  aws codebuild batch-delete-builds --ids {} > /dev/null