summaryrefslogtreecommitdiffstats
path: root/taskcluster/docker/sentry/submit_sentry_release.sh
blob: 136e06a58ab62064d131e3d2f5052d3bb3e5bcf7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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