aboutsummaryrefslogtreecommitdiff
path: root/ci-dockerfiles-deployment/publish.sh
blob: 9d71f3e28bc6275a5a9ae6cec9730bc114ba1231 (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash

set -ex

trap cleanup_exit INT TERM EXIT

cleanup_exit()
{
    rm -rf ${HOME}/.docker
    rm -f ${WORKSPACE}/{log,config.json,version.txt}
}

docker_log_in()
{
    mkdir -p ${HOME}/.docker
    sed -e "s|\${DOCKER_AUTH}|${DOCKER_AUTH}|" < ${WORKSPACE}/config.json > ${HOME}/.docker/config.json
    chmod 0600 ${HOME}/.docker/config.json
}

update_images=$(find -type f -name .docker-tag)
docker_log_in
for imagename in ${update_images}; do
  (
    docker_tag=$(cat $imagename)
    if [ x"${GERRIT_BRANCH}" != x"master" ]; then
      new_tag=${docker_tag}-${GERRIT_BRANCH}
      docker tag ${docker_tag} ${new_tag}
      docker_tag=${new_tag}
    fi
    for i in 30 60 120;
    do
        docker push ${docker_tag} && exit 0 || true
        sleep $i
        docker_log_in
    done
    exit 1
  )||echo $imagename push failed >> ${WORKSPACE}/log
done

if [ -e ${WORKSPACE}/log ]
then
    echo "some images failed:"
    cat ${WORKSPACE}/log
    exit 1
fi