summaryrefslogtreecommitdiffstats
path: root/taskcluster/docker/sentry/submit_sentry_release.sh
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--taskcluster/docker/sentry/submit_sentry_release.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/taskcluster/docker/sentry/submit_sentry_release.sh b/taskcluster/docker/sentry/submit_sentry_release.sh
new file mode 100644
index 0000000000..136e06a58a
--- /dev/null
+++ b/taskcluster/docker/sentry/submit_sentry_release.sh
@@ -0,0 +1,29 @@
+#!/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