diff --git a/.buildkite/hooks/pre-command b/.buildkite/hooks/pre-command new file mode 100755 index 000000000000..b991303db363 --- /dev/null +++ b/.buildkite/hooks/pre-command @@ -0,0 +1,43 @@ +#!/bin/bash + +# This file should be kept in sync with vtools's pre-command file. +# https://github.com/redpanda-data/vtools/.buildkite/hooks/pre-command + +set -uo pipefail +set +e + +disable_hook="${DISABLE_PRE_COMMAND_HOOK:-0}" + +if [[ ${disable_hook} == 0 ]]; then + PARALLEL_STEPS=1 + + repo=$(echo $BUILDKITE_REPO | awk -F/ '{print $NF}' | awk -F. '{print $1}') + + if [[ ${BUILDKITE_PULL_REQUEST} != false ]]; then + labels=$(curl \ + --retry 3 --retry-connrefused --fail \ + -H "Accept: application/vnd.github.v3+json" \ + -H "Authorization: token ${GITHUB_API_TOKEN}" \ + "https://api.github.com/repos/redpanda-data/${repo}/issues/${BUILDKITE_PULL_REQUEST}/labels") + + if [[ $? == "0" ]]; then + set -e + parallel=$(echo "${labels}" | jq -r '.[].name|select(startswith("ci-repeat-"))|ltrimstr("ci-repeat-")' | head -1) + curl \ + -X "DELETE" \ + --retry 3 --retry-connrefused --silent \ + -H "Accept: application/vnd.github.v3+json" \ + -H "Authorization: token ${GITHUB_API_TOKEN}" \ + "https://api.github.com/repos/redpanda-data/${repo}/issues/${BUILDKITE_PULL_REQUEST}/labels/ci-repeat-$parallel" + + if ((parallel > 1 && parallel < 20)); then + PARALLEL_STEPS=$parallel + else + echo >&2 "Provided parallel number is out of range(2-19). Changing to 1." + PARALLEL_STEPS=1 + fi + fi + fi + + export PARALLEL_STEPS +fi diff --git a/.gitignore b/.gitignore index 041311bb466a..516cc5f77232 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,7 @@ *.out *.app /*build* +!.buildkite /dbuild bin _e2e_artifacts/ @@ -240,4 +241,4 @@ vbuild/ # VSCode java settings .classpath .factorypath -.settings/ \ No newline at end of file +.settings/