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.
 
 
 

57 lines
2.2 KiB

  1. #!/usr/bin/env bash
  2. set -eu
  3. echo "build"
  4. source hooks/.config
  5. echo "Will build the following architectures: $verified_build_architectures"
  6. echo "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯"
  7. for arch in ${verified_build_architectures[@]}; do
  8. echo "building $arch"
  9. echo "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯"
  10. BASE_IMAGE_PREFIX="${base_image_prefix_map[${arch}]}"
  11. docker build \
  12. --build-arg GOOS=linux \
  13. --build-arg GOARCH=${arch} \
  14. --file $DOCKERFILE_PATH \
  15. --tag "${IMAGE_NAME}-${arch}" \
  16. .
  17. done
  18. echo "images built:"
  19. echo "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯"
  20. docker image ls
  21. # https://github.com/moby/moby/issues/36552
  22. #
  23. tempdir=$(mktemp -d -t yolo.XXXXXXXX)
  24. cd $tempdir
  25. for arch in ${verified_build_architectures[@]}; do
  26. echo "yolo fixing platform $arch"
  27. echo "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯"
  28. manifest_arch=${docker_to_manifest_map[${arch}]}
  29. docker save "${IMAGE_NAME}-${arch}"| tar xv
  30. for filename in */json; do
  31. [ -e "$filename" ] || continue
  32. jq --compact-output 'del(.architecture)' < "$filename" | sponge "$filename"
  33. done
  34. for filename in *.json; do
  35. [ -e "$filename" ] || continue
  36. ! [ $filename = "manifest.json" ] || continue
  37. jq --arg architecture "$manifest_arch" \
  38. --compact-output '.architecture=$architecture' < "$filename" | sponge "$filename"
  39. done
  40. tar cv . | docker load
  41. rm -rf $tempdir/*
  42. done
  43. trap "exit 1" HUP INT PIPE QUIT TERM
  44. trap "rm -rf $tempdir" EXIT