build-aci 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #!/usr/bin/env bash
  2. set -e
  3. BINARYDIR=${BINARYDIR:-bin}
  4. BUILDDIR=${BUILDDIR:-bin}
  5. # A non-installed acbuild can be used, for example:
  6. # ACBUILD=../../appc/acbuild/bin/acbuild
  7. ACBUILD=${ACBUILD:-acbuild}
  8. VERSION=$1
  9. go2aci() {
  10. case "${1}" in
  11. "arm64") echo "aarch64";;
  12. *) echo "${1}";;
  13. esac
  14. }
  15. if ! command -v "${ACBUILD}" >/dev/null; then
  16. echo "acbuild ($ACBUILD) is not executable"
  17. exit 1
  18. fi
  19. if [ ! -x "${BINARYDIR}"/etcd ] ; then
  20. echo "$BINARYDIR/etcd not found. Is it compiled?"
  21. exit 1
  22. fi
  23. if [ -z "$VERSION" ] ; then
  24. echo "Usage: scripts/build-aci VERSION"
  25. exit 1
  26. fi
  27. acbuild --debug begin
  28. TMPHOSTS="$(mktemp)"
  29. ACI_ARCH=$(go2aci "${GOARCH}")
  30. acbuildEnd() {
  31. rm "$TMPHOSTS"
  32. export EXIT=$?
  33. acbuild --debug end && exit $EXIT
  34. }
  35. trap acbuildEnd EXIT
  36. cat <<DF > "$TMPHOSTS"
  37. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  38. DF
  39. acbuild --debug set-name coreos.com/etcd
  40. acbuild --debug annotation add appc.io/executor/supports-systemd-notify true
  41. acbuild --debug copy "${BINARYDIR}"/etcd /usr/local/bin/etcd
  42. acbuild --debug copy "${BINARYDIR}"/etcdctl /usr/local/bin/etcdctl
  43. acbuild --debug copy README.md README.md
  44. acbuild --debug copy etcdctl/README.md README-etcdctl.md
  45. acbuild --debug copy etcdctl/READMEv2.md READMEv2-etcdctl.md
  46. acbuild --debug copy-to-dir Documentation .
  47. acbuild --debug environment add ETCD_DATA_DIR /var/lib/etcd
  48. acbuild --debug mount add data-dir /var/lib/etcd
  49. acbuild --debug label add version "$VERSION"
  50. acbuild --debug set-exec -- /usr/local/bin/etcd
  51. acbuild --debug port add client tcp 2379
  52. acbuild --debug port add peer tcp 2380
  53. acbuild --debug copy "$TMPHOSTS" /etc/hosts
  54. acbuild --debug label add arch "${ACI_ARCH}"
  55. # mkdir default data-dir
  56. mkdir -p .acbuild/currentaci/rootfs/var/lib/etcd
  57. # symlinks for backward-compatibility
  58. ln -s ./usr/local/bin/etcd .acbuild/currentaci/rootfs/etcd
  59. ln -s ./usr/local/bin/etcdctl .acbuild/currentaci/rootfs/etcdctl
  60. acbuild --debug write --overwrite "${BUILDDIR}/etcd-${1}-linux-${ACI_ARCH}.aci"