You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

53 lines
2.2 KiB

  1. #!/usr/bin/env bash
  2. set -eu
  3. echo "push"
  4. source hooks/.config
  5. # 1. push all images
  6. IMAGE_NAME="${IMAGE_NAME//index.docker.io\/}"
  7. for arch in ${verified_build_architectures[@]}; do
  8. echo "Pushing ${IMAGE_NAME}-${arch}"
  9. echo "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯"
  10. echo
  11. docker push ${IMAGE_NAME}-${arch}
  12. done
  13. docker image ls
  14. # 2. build and push manifest
  15. #DOCKER_REPO="index.docker.io/${DOCKER_REPO}"
  16. manifests=""
  17. for arch in ${verified_build_architectures[@]}; do
  18. manifests="${manifests} ${IMAGE_NAME}-${arch}"
  19. done
  20. echo "Creating manifest ${IMAGE_NAME}"
  21. echo "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯"
  22. docker manifest create ${IMAGE_NAME} \
  23. $manifests
  24. echo
  25. echo "Annotating manifest"
  26. echo "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯"
  27. for arch in ${verified_build_architectures[@]}; do
  28. docker manifest annotate ${IMAGE_NAME} \
  29. ${IMAGE_NAME}-${arch} \
  30. --os linux \
  31. --arch ${docker_to_manifest_map[${arch}]}
  32. done
  33. echo "Inspecting manifest ${IMAGE_NAME}-${arch}"
  34. echo "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯"
  35. docker manifest inspect ${IMAGE_NAME}-${arch}
  36. echo
  37. echo "Pushing manifest ${IMAGE_NAME}"
  38. echo "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯"
  39. docker manifest push --purge "${IMAGE_NAME}"
  40. echo
  41. echo
  42. echo "Done"