diff --git a/docker-versions-create.sh b/docker-versions-create.sh new file mode 100755 index 00000000..8337ea85 --- /dev/null +++ b/docker-versions-create.sh @@ -0,0 +1,71 @@ +#!/bin/bash +#set -x +# Use this variable to indicate a list of branches that docker hub is watching +branches_list=('openj9' 'openj9-nightly') + +function TrapExit { + echo "Checking out back in master" + git checkout master +} + +trap TrapExit EXIT SIGTERM + +test -d ./.git || { echo ".git folder was not found. Please start this script from root directory of the project!"; + exit 1; } + +# Making sure we are in master +git checkout master +git pull --all || { echo "Can't pull the repo!"; \ + exit 1; } + +git_branches=$(git branch -a) + +for branch in "${branches_list[@]}"; do + if [[ "$git_branches" != *"$branch"* ]]; then + echo "Can't update $branch because I can't find it in the list of branches." + exit 1 + else + echo "Branch $branch found. Working with it." + git checkout "$branch" || { echo "Can't checkout into the branch. Don't know the cause."; \ + exit 1; } + proceed='False' + while [[ "$proceed" == "False" ]]; do + if git merge master; then + proceed="True" + echo "Branch $branch updated to current master successfully" + # pushing changes to remote for this branch + git commit -m "Auto merge branch with master" -a + # push may fail if remote doesn't have this branch yet. In this case - sending branch + git push || git push -u origin "$branch" || { echo "Can't push changes to the origin."; exit 1; } + else + cat<