blob: a41ea724dbb9d319bb54088bc98a921d1492f865 [file] [log] [blame]
Riku Voipiob8ffb562020-10-12 11:44:40 +03001#!/bin/bash
2
3set -ex
4
5trap cleanup_exit INT TERM EXIT
6
7cleanup_exit()
8{
9 rm -rf ${HOME}/.docker
10 rm -f ${WORKSPACE}/{log,config.json,version.txt}
11}
12
Saheer Babu77aa8ca2025-08-15 17:42:23 +010013dh_registry_log_in()
Riku Voipiob8ffb562020-10-12 11:44:40 +030014{
15 mkdir -p ${HOME}/.docker
Riku Voipioccec8242020-10-12 13:56:15 +030016 cat > ${HOME}/.docker/config.json << EOF
17{
18 "auths": {
19 "https://index.docker.io/v1/": {
20 "auth": "${DOCKER_AUTH}"
21 }
22 }
23}
24EOF
Riku Voipiob8ffb562020-10-12 11:44:40 +030025 chmod 0600 ${HOME}/.docker/config.json
26}
Saheer Babu92df4532025-06-10 16:40:59 +010027export AWS_DEFAULT_REGION=eu-west-1
Riku Voipiob8ffb562020-10-12 11:44:40 +030028update_images=$(find -type f -name .docker-tag)
Saheer Babu77aa8ca2025-08-15 17:42:23 +010029dh_registry_log_in
Riku Voipiob8ffb562020-10-12 11:44:40 +030030for 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}
Saheer Babu77aa8ca2025-08-15 17:42:23 +010035 buildah tag ${docker_tag} ${new_tag}
Riku Voipiob8ffb562020-10-12 11:44:40 +030036 docker_tag=${new_tag}
37 fi
Saheer Babu92df4532025-06-10 16:40:59 +010038
Riku Voipiob8ffb562020-10-12 11:44:40 +030039 for i in 30 60 120;
40 do
Saheer Babu92df4532025-06-10 16:40:59 +010041 # The following code pushes docker images to both DockerHub and PRIVATE_CONTAINER_REGISTRY
42 # PRIVATE_CONTAINER_REGISTRY is used to overcome the DockerHub rate limiting
43 mirror_tag=${PRIVATE_CONTAINER_REGISTRY}/${docker_tag}
Saheer Babu77aa8ca2025-08-15 17:42:23 +010044 buildah tag ${docker_tag} ${mirror_tag}
45 aws ecr get-login-password | buildah login --username AWS --password-stdin ${PRIVATE_CONTAINER_REGISTRY}
Saheer Babu92df4532025-06-10 16:40:59 +010046 REPO_NAME=$(echo "$docker_tag" | cut -d: -f1)
47 # create if repository not already present in PRIVATE_CONTAINER_REGISTRY
48 aws ecr describe-repositories --repository-names ${REPO_NAME} || aws ecr create-repository --repository-name ${REPO_NAME}
Saheer Babu77aa8ca2025-08-15 17:42:23 +010049 buildah push ${docker_tag} && buildah push ${mirror_tag} && exit 0 || true
Riku Voipiob8ffb562020-10-12 11:44:40 +030050 sleep $i
Saheer Babu77aa8ca2025-08-15 17:42:23 +010051 dh_registry_log_in
Riku Voipiob8ffb562020-10-12 11:44:40 +030052 done
53 exit 1
54 )||echo $imagename push failed >> ${WORKSPACE}/log
55done
56
57if [ -e ${WORKSPACE}/log ]
58then
59 echo "some images failed:"
60 cat ${WORKSPACE}/log
61 exit 1
62fi