Riku Voipio | b8ffb56 | 2020-10-12 11:44:40 +0300 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | set -ex |
| 4 | |
| 5 | trap cleanup_exit INT TERM EXIT |
| 6 | |
| 7 | cleanup_exit() |
| 8 | { |
| 9 | rm -rf ${HOME}/.docker |
| 10 | rm -f ${WORKSPACE}/{log,config.json,version.txt} |
| 11 | } |
| 12 | |
| 13 | docker_log_in() |
| 14 | { |
| 15 | mkdir -p ${HOME}/.docker |
Riku Voipio | ccec824 | 2020-10-12 13:56:15 +0300 | [diff] [blame^] | 16 | cat > ${HOME}/.docker/config.json << EOF |
| 17 | { |
| 18 | "auths": { |
| 19 | "https://index.docker.io/v1/": { |
| 20 | "auth": "${DOCKER_AUTH}" |
| 21 | } |
| 22 | } |
| 23 | } |
| 24 | EOF |
Riku Voipio | b8ffb56 | 2020-10-12 11:44:40 +0300 | [diff] [blame] | 25 | chmod 0600 ${HOME}/.docker/config.json |
| 26 | } |
| 27 | |
| 28 | update_images=$(find -type f -name .docker-tag) |
| 29 | docker_log_in |
| 30 | for imagename in ${update_images}; do |
| 31 | ( |
| 32 | docker_tag=$(cat $imagename) |
| 33 | if [ x"${GERRIT_BRANCH}" != x"master" ]; then |
| 34 | new_tag=${docker_tag}-${GERRIT_BRANCH} |
| 35 | docker tag ${docker_tag} ${new_tag} |
| 36 | docker_tag=${new_tag} |
| 37 | fi |
| 38 | for i in 30 60 120; |
| 39 | do |
| 40 | docker push ${docker_tag} && exit 0 || true |
| 41 | sleep $i |
| 42 | docker_log_in |
| 43 | done |
| 44 | exit 1 |
| 45 | )||echo $imagename push failed >> ${WORKSPACE}/log |
| 46 | done |
| 47 | |
| 48 | if [ -e ${WORKSPACE}/log ] |
| 49 | then |
| 50 | echo "some images failed:" |
| 51 | cat ${WORKSPACE}/log |
| 52 | exit 1 |
| 53 | fi |