release.sh 789 B

12345678910111213141516171819202122232425262728293031323334
  1. #!/usr/bin/env bash
  2. #
  3. # Build all release binaries and images to directory ./release.
  4. # Run from repository root.
  5. #
  6. set -e
  7. VERSION=$1
  8. if [ -z "${VERSION}" ]; then
  9. echo "Usage: ${0} VERSION" >> /dev/stderr
  10. exit 255
  11. fi
  12. if ! command -v acbuild >/dev/null; then
  13. echo "cannot find acbuild"
  14. exit 1
  15. fi
  16. if ! command -v docker >/dev/null; then
  17. echo "cannot find docker"
  18. exit 1
  19. fi
  20. ETCD_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
  21. pushd "${ETCD_ROOT}" >/dev/null
  22. echo Building etcd binary...
  23. ./scripts/build-binary "${VERSION}"
  24. for TARGET_ARCH in "amd64" "arm64" "ppc64le"; do
  25. echo Building ${TARGET_ARCH} docker image...
  26. GOARCH=${TARGET_ARCH} BINARYDIR=release/etcd-${VERSION}-linux-${TARGET_ARCH} BUILDDIR=release ./scripts/build-docker "${VERSION}"
  27. done
  28. popd >/dev/null