build-release 967 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/bin/sh -e
  2. VER=$1
  3. function build {
  4. proj=${1}
  5. ver=${2}
  6. if [ ! -d ${proj} ]; then
  7. git clone https://github.com/coreos/${proj}
  8. fi
  9. cd ${proj}
  10. git checkout master
  11. git fetch --all
  12. git reset --hard origin/master
  13. git checkout $ver
  14. ./build
  15. cd -
  16. }
  17. function package {
  18. target=${1}
  19. ccdir="${proj}/bin/${GOOS}_${GOARCH}"
  20. if [ -d ${ccdir} ]; then
  21. cp ${ccdir}/etcdctl ${target}
  22. cp ${ccdir}/etcd ${target}
  23. else
  24. cp ${proj}/bin/etcd ${target}
  25. cp ${proj}/bin/etcdctl ${target}
  26. fi
  27. cp etcd/README.md ${target}/README.md
  28. cp etcd/etcdctl/README.md ${target}/README-etcdctl.md
  29. cp -R etcd/Documentation/0.5 ${target}/Documentation
  30. }
  31. mkdir release
  32. cd release
  33. for i in darwin windows linux; do
  34. export GOOS=${i}
  35. export GOARCH="amd64"
  36. build etcd ${VER}
  37. TARGET="etcd-${VER}-${GOOS}-${GOARCH}"
  38. mkdir ${TARGET}
  39. package ${TARGET}
  40. if [ ${GOOS} == "linux" ]; then
  41. tar cvvfz ${TARGET}.tar.gz ${TARGET}
  42. else
  43. zip -r ${TARGET}.zip ${TARGET}
  44. fi
  45. done