builder-web/populate-local.sh

34 lines
1.2 KiB
Bash
Raw Permalink Normal View History

#!/bin/sh
# Edit these values to your needs:
remote_instance=https://builds.robur.coop
local_user_pass=test:test
local_instance="http://${local_user_pass}@localhost:3000"
2025-02-10 14:17:18 +00:00
global_limit=100
per_job_limit=3 # Limit to 3 builds per job
curl_json () {
curl --silent --fail --location --header "Accept: application/json" "$@"
}
curl_json "${remote_instance}/" | jq -r .jobs[] | {
2025-02-10 14:17:18 +00:00
while read -r job_name; do
build_count=0
curl_json "${remote_instance}/job/${job_name}" | jq -r .builds[].uuid | {
while read -r build_uuid; do
if [ "$global_limit" -eq 0 ] || [ "$build_count" -ge "$per_job_limit" ]; then
break 2
fi
dest=$(mktemp "builder-${build_uuid}.XXXXXXXXXX")
curl --silent --fail "${remote_instance}/job/${job_name}/build/${build_uuid}/exec" > "$dest" && {
echo "Uploading $job_name build $build_uuid"
curl --data-binary "@${dest}" "${local_instance}/upload"
}
rm -f "$dest"
global_limit=$((global_limit - 1))
build_count=$((build_count + 1))
done
}
done
}