release.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/bin/bash
  2. GIT_REV=$(git rev-parse HEAD)
  3. VERSION=$(git name-rev --tags --name-only $GIT_REV)
  4. LD_FLAGS="-s"
  5. if [ "$VERSION" != "undefined" ]; then
  6. VERSION=${VERSION%^0}
  7. TODAY="$(date -u +%Y%m%d)"
  8. LD_FLAGS="${LD_FLAGS} -X github.com/v2ray/v2ray-core.version=${VERSION} -X github.com/v2ray/v2ray-core.build=${TODAY}"
  9. else
  10. VERSION="custom"
  11. fi
  12. BIN_PATH=$GOPATH/bin
  13. mkdir -p $BIN_PATH
  14. function build {
  15. local GOOS=$1
  16. local GOARCH=$2
  17. local SUFFIX=$3
  18. local EXT=$4
  19. local REL_PATH=$BIN_PATH/v2ray_${VERSION}${SUFFIX}
  20. local TARGET=$REL_PATH/v2ray${EXT}
  21. if [ -d "$REL_PATH" ]; then
  22. rm -rf "$REL_PATH"
  23. fi
  24. mkdir -p $REL_PATH/config
  25. cp -R $GOPATH/src/github.com/v2ray/v2ray-core/release/config/* $REL_PATH/config/
  26. GOOS=${GOOS} GOARCH=${GOARCH} go build -o ${TARGET} -compiler gc -ldflags "${LD_FLAGS}" github.com/v2ray/v2ray-core/release/server
  27. ZIP_FILE=$BIN_PATH/v2ray${SUFFIX}.zip
  28. if [ -f $ZIP_FILE ]; then
  29. rm -f $ZIP_FILE
  30. fi
  31. pushd $BIN_PATH
  32. zip -r $ZIP_FILE ./v2ray_${VERSION}${SUFFIX}/*
  33. popd
  34. }
  35. build "darwin" "amd64" "-macos" "-macos"
  36. build "windows" "amd64" "-windows-64" "-windows-64.exe"
  37. build "windows" "386" "-windows-32" "-windows-32.exe"
  38. build "linux" "amd64" "-linux-64" "-linux-64"
  39. build "linux" "386" "-linux-32" "-linux-32"
  40. build "linux" "arm" "-armv6" "-armv6"