21521: Wrap aptly commands in flock
[arvados-dev.git] / jenkins / run-delete-merged-branches.sh
1 #!/bin/bash -x
2
3 # Copyright (C) The Arvados Authors. All rights reserved.
4 #
5 # SPDX-License-Identifier: AGPL-3.0
6
7 # Provide generic exit strategy for any error in execution
8 _exit_handler() {
9     local rc="${?}"
10     trap - EXIT
11     if [ "${rc}" -ne 0 ]; then
12         echo "Error occurred (${rc}) while running ${0} at line ${1}: ${BASH_COMMAND}"
13     fi
14     exit "${rc}"
15 }
16
17 set -Ee
18 trap '_exit_handler $LINENO' EXIT ERR
19
20 # List here branches that you don't want to ever delete, separated with "|"
21 # (as they will be passed as a parameter to egrep)
22 # IE: "keep_this_branch|also_this_other|and_this_one"
23 branches_to_keep="master|main|integration|dev|staging|.*\-dev"
24
25 git remote update --prune
26 git checkout main
27 git pull
28
29 git branch --remote --merged | \
30     egrep -v "/(${branches_to_keep})\$" | \
31     sed 's/origin\///' | \
32     xargs --no-run-if-empty -n 1 git push --delete origin
33