push_to_docker_hub.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/sh
  2. set -e
  3. _grafana_tag=${1:-}
  4. _docker_repo=${2:-grafana/grafana}
  5. # If the tag starts with v, treat this as a official release
  6. if echo "$_grafana_tag" | grep -q "^v"; then
  7. _grafana_version=$(echo "${_grafana_tag}" | cut -d "v" -f 2)
  8. else
  9. _grafana_version=$_grafana_tag
  10. fi
  11. export DOCKER_CLI_EXPERIMENTAL=enabled
  12. echo "pushing ${_docker_repo}:${_grafana_version}"
  13. docker_push_all () {
  14. repo=$1
  15. tag=$2
  16. # Push each image individually
  17. docker push "${repo}:${tag}"
  18. docker push "${repo}-arm32v7-linux:${tag}"
  19. docker push "${repo}-arm64v8-linux:${tag}"
  20. # Create and push a multi-arch manifest
  21. docker manifest create "${repo}:${tag}" \
  22. "${repo}:${tag}" \
  23. "${repo}-arm32v7-linux:${tag}" \
  24. "${repo}-arm64v8-linux:${tag}"
  25. docker manifest push "${repo}:${tag}"
  26. }
  27. if echo "$_grafana_tag" | grep -q "^v" && echo "$_grafana_tag" | grep -vq "beta"; then
  28. echo "pushing ${_docker_repo}:latest"
  29. docker_push_all "${_docker_repo}" "latest"
  30. docker_push_all "${_docker_repo}" "${_grafana_version}"
  31. # Push to the grafana-dev repository with the expected tag
  32. # for running the end to end tests successfully
  33. docker push "grafana/grafana-dev:${_grafana_tag}"
  34. elif echo "$_grafana_tag" | grep -q "^v" && echo "$_grafana_tag" | grep -q "beta"; then
  35. docker_push_all "${_docker_repo}" "${_grafana_version}"
  36. # Push to the grafana-dev repository with the expected tag
  37. # for running the end to end tests successfully
  38. docker push "grafana/grafana-dev:${_grafana_tag}"
  39. elif echo "$_grafana_tag" | grep -q "master"; then
  40. docker_push_all "${_docker_repo}" "master"
  41. docker push "grafana/grafana-dev:${_grafana_version}"
  42. fi