release.sh 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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. # ppc64le not yet supported by acbuild.
  25. for TARGET_ARCH in "amd64" "arm64"; do
  26. echo Building ${TARGET_ARCH} aci image...
  27. GOARCH=${TARGET_ARCH} BINARYDIR=release/etcd-${VERSION}-linux-${TARGET_ARCH} BUILDDIR=release ./scripts/build-aci "${VERSION}"
  28. done
  29. for TARGET_ARCH in "amd64" "arm64" "ppc64le"; do
  30. echo Building ${TARGET_ARCH} docker image...
  31. GOARCH=${TARGET_ARCH} BINARYDIR=release/etcd-${VERSION}-linux-${TARGET_ARCH} BUILDDIR=release ./scripts/build-docker "${VERSION}"
  32. done
  33. popd >/dev/null