push_to_docker_hub.sh 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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}-arm32v6-linux:${tag}"
  19. docker push "${repo}-arm32v7-linux:${tag}"
  20. docker push "${repo}-arm64v8-linux:${tag}"
  21. # Create and push a multi-arch manifest
  22. docker manifest create "${repo}:${tag}" \
  23. "${repo}:${tag}" \
  24. "${repo}-arm32v6-linux:${tag}" \
  25. "${repo}-arm32v7-linux:${tag}" \
  26. "${repo}-arm64v8-linux:${tag}"
  27. docker manifest push "${repo}:${tag}"
  28. }
  29. if echo "$_grafana_tag" | grep -q "^v" && echo "$_grafana_tag" | grep -vq "beta"; then
  30. echo "pushing ${_docker_repo}:latest"
  31. docker_push_all "${_docker_repo}" "latest"
  32. docker_push_all "${_docker_repo}" "${_grafana_version}"
  33. elif echo "$_grafana_tag" | grep -q "^v" && echo "$_grafana_tag" | grep -q "beta"; then
  34. docker_push_all "${_docker_repo}" "${_grafana_version}"
  35. elif echo "$_grafana_tag" | grep -q "master"; then
  36. docker_push_all "${_docker_repo}" "master"
  37. docker push "grafana/grafana-dev:${_grafana_version}"
  38. fi