29 lines
906 B
Bash
29 lines
906 B
Bash
#!/bin/bash
|
|
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
run() {
|
|
revisions=$(curl "$HG_PUSHLOG_URL" | jq -c -r ".pushes[].changesets | @sh" | tr -d \') || return 1
|
|
sentry_api_key=$(curl "http://taskcluster/secrets/v1/secret/$SENTRY_SECRET" | jq -r ".secret.sentryToken") || return 1
|
|
for revision in $revisions; do
|
|
SENTRY_AUTH_TOKEN=$sentry_api_key SENTRY_ORG=mozilla sentry-cli --url https://sentry.io/ releases --project mach new "hg-rev-$revision" || return 1
|
|
done
|
|
}
|
|
|
|
with_backoff() {
|
|
failures=0
|
|
while ! "$@"; do
|
|
failures=$(( failures + 1 ))
|
|
if (( failures >= 5 )); then
|
|
echo "[with_backoff] Unable to succeed after 5 tries, failing the job."
|
|
return 1
|
|
else
|
|
seconds=$(( 2 ** (failures - 1) ))
|
|
echo "[with_backoff] Retrying in $seconds second(s)"
|
|
sleep $seconds
|
|
fi
|
|
done
|
|
}
|
|
|
|
with_backoff run
|