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