Source code

Revision control

Copy as Markdown

Other Tools

#!/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