2018-07-26 06:40:52 -05:00
|
|
|
#!/bin/sh
|
2018-08-06 09:26:59 -05:00
|
|
|
set -e
|
2018-07-26 06:40:52 -05:00
|
|
|
|
2019-11-07 09:36:40 -06:00
|
|
|
UBUNTU_BASE=0
|
2019-11-11 11:05:46 -06:00
|
|
|
TAG_SUFFIX=""
|
2019-11-07 09:36:40 -06:00
|
|
|
|
|
|
|
while [ "$1" != "" ]; do
|
|
|
|
case "$1" in
|
|
|
|
"--ubuntu")
|
|
|
|
UBUNTU_BASE=1
|
2019-11-11 11:05:46 -06:00
|
|
|
TAG_SUFFIX="-ubuntu"
|
2019-11-07 09:36:40 -06:00
|
|
|
echo "Ubuntu base image enabled"
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
* )
|
|
|
|
# unknown param causes args to be passed through to $@
|
|
|
|
break
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
2018-12-20 15:48:53 -06:00
|
|
|
_grafana_tag=${1:-}
|
|
|
|
_docker_repo=${2:-grafana/grafana}
|
2018-07-26 06:40:52 -05:00
|
|
|
|
2019-11-07 09:36:40 -06:00
|
|
|
# If the tag starts with v, treat this as an official release
|
2018-07-30 07:05:56 -05:00
|
|
|
if echo "$_grafana_tag" | grep -q "^v"; then
|
2022-11-28 13:43:42 -06:00
|
|
|
_grafana_version=$(echo "${_grafana_tag}" | cut -d "v" -f 2)
|
2018-07-30 07:05:56 -05:00
|
|
|
else
|
2022-11-28 13:43:42 -06:00
|
|
|
_grafana_version=$_grafana_tag
|
2018-07-30 07:05:56 -05:00
|
|
|
fi
|
|
|
|
|
2019-11-11 11:05:46 -06:00
|
|
|
echo "pushing ${_docker_repo}:${_grafana_version}${TAG_SUFFIX}"
|
2018-12-20 15:48:53 -06:00
|
|
|
|
2022-11-28 13:43:42 -06:00
|
|
|
export DOCKER_CLI_EXPERIMENTAL=enabled
|
|
|
|
|
2018-12-20 15:48:53 -06:00
|
|
|
docker_push_all () {
|
2022-11-28 13:43:42 -06:00
|
|
|
repo=$1
|
|
|
|
tag=$2
|
2018-12-20 15:48:53 -06:00
|
|
|
|
2019-11-11 11:05:46 -06:00
|
|
|
# Push each image individually
|
|
|
|
docker push "${repo}:${tag}${TAG_SUFFIX}"
|
|
|
|
docker push "${repo}-arm32v7-linux:${tag}${TAG_SUFFIX}"
|
|
|
|
docker push "${repo}-arm64v8-linux:${tag}${TAG_SUFFIX}"
|
2018-12-20 15:48:53 -06:00
|
|
|
|
2019-11-11 11:05:46 -06:00
|
|
|
# Create and push a multi-arch manifest
|
|
|
|
docker manifest create "${repo}:${tag}${TAG_SUFFIX}" \
|
|
|
|
"${repo}:${tag}${TAG_SUFFIX}" \
|
|
|
|
"${repo}-arm32v7-linux:${tag}${TAG_SUFFIX}" \
|
|
|
|
"${repo}-arm64v8-linux:${tag}${TAG_SUFFIX}"
|
2018-12-20 15:48:53 -06:00
|
|
|
|
2019-11-11 11:05:46 -06:00
|
|
|
docker manifest push "${repo}:${tag}${TAG_SUFFIX}"
|
2018-12-20 15:48:53 -06:00
|
|
|
}
|
2019-01-09 09:14:03 -06:00
|
|
|
|
2018-08-16 04:14:12 -05:00
|
|
|
if echo "$_grafana_tag" | grep -q "^v" && echo "$_grafana_tag" | grep -vq "beta"; then
|
2022-11-28 13:43:42 -06:00
|
|
|
echo "pushing ${_docker_repo}:latest${TAG_SUFFIX}"
|
|
|
|
docker_push_all "${_docker_repo}" "latest"
|
|
|
|
docker_push_all "${_docker_repo}" "${_grafana_version}"
|
|
|
|
# Push to the grafana-dev repository with the expected tag
|
|
|
|
# for running the end to end tests successfully
|
2019-11-11 11:05:46 -06:00
|
|
|
docker push "grafana/grafana-dev:${_grafana_tag}${TAG_SUFFIX}"
|
2018-12-20 15:48:53 -06:00
|
|
|
elif echo "$_grafana_tag" | grep -q "^v" && echo "$_grafana_tag" | grep -q "beta"; then
|
2022-11-28 13:43:42 -06:00
|
|
|
docker_push_all "${_docker_repo}" "${_grafana_version}"
|
|
|
|
# Push to the grafana-dev repository with the expected tag
|
|
|
|
# for running the end to end tests successfully
|
2019-11-11 11:05:46 -06:00
|
|
|
docker push "grafana/grafana-dev:${_grafana_tag}${TAG_SUFFIX}"
|
2021-05-06 09:29:29 -05:00
|
|
|
elif echo "$_grafana_tag" | grep -q "main"; then
|
2022-11-28 13:43:42 -06:00
|
|
|
docker_push_all "${_docker_repo}" "main"
|
2019-11-11 11:05:46 -06:00
|
|
|
docker push "grafana/grafana-dev:${_grafana_version}${TAG_SUFFIX}"
|
2018-07-26 06:40:52 -05:00
|
|
|
fi
|