build-release.sh 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/bin/bash
  2. name='aliddns'
  3. MD5='md5sum'
  4. if [[ "$(uname)" == 'Darwin' ]]; then
  5. MD5='md5'
  6. fi
  7. # UPX=false
  8. # if hash upx 2>/dev/null; then
  9. # UPX=true
  10. # fi
  11. VERSION=$(curl -sSL https://api.github.com/repos/honwen/aliyun-ddns-cli/commits/master | sed -n '{/sha/p; /date/p;}'| sed 's/.* \"//g' | cut -c1-10 | tr '[:lower:]' '[:upper:]' | sed 'N;s/\n/@/g' | head -1)
  12. LDFLAGS="-X main.version=$VERSION -s -w"
  13. # X86
  14. OSES=(windows linux darwin freebsd)
  15. # ARCHS=(amd64 386)
  16. ARCHS=(amd64)
  17. rm -rf ./release
  18. mkdir -p ./release
  19. for os in ${OSES[@]}; do
  20. for arch in ${ARCHS[@]}; do
  21. suffix=""
  22. if [ "$os" == "windows" ]; then
  23. suffix=".exe"
  24. fi
  25. env CGO_ENABLED=0 GOOS=$os GOARCH=$arch go build -ldflags "$LDFLAGS" -o ./release/${name}_${os}_${arch}${suffix} .
  26. # if $UPX; then upx -9 ./release/${name}_${os}_${arch}${suffix} -o ./release/${name}_${os}_${arch}${suffix}_upx; fi
  27. tar -C ./release -zcf ./release/${name}_${os}-${arch}-$VERSION.tar.gz ./${name}_${os}_${arch}${suffix}
  28. $MD5 ./release/${name}_${os}-${arch}-$VERSION.tar.gz
  29. done
  30. done
  31. # ARM64
  32. env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "$LDFLAGS" -o ./release/${name}_arm64 .
  33. # ARM
  34. ARMS=(5 6 7)
  35. for v in ${ARMS[@]}; do
  36. env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=$v go build -ldflags "$LDFLAGS" -o ./release/${name}_arm$v .
  37. done
  38. # if $UPX; then upx -9 ./release/${name}_arm*; fi
  39. tar -C ./release -zcf ./release/${name}_arm-$VERSION.tar.gz $(for v in ${ARMS[@]}; do echo -n "./${name}_arm$v ";done)
  40. $MD5 ./release/${name}_arm-$VERSION.tar.gz
  41. # MIPS/hardfloat
  42. env CGO_ENABLED=0 GOOS=linux GOARCH=mipsle go build -ldflags "$LDFLAGS" -o ./release/${name}_mipsle .
  43. env CGO_ENABLED=0 GOOS=linux GOARCH=mips go build -ldflags "$LDFLAGS" -o ./release/${name}_mips .
  44. # MIPS/softfloat
  45. env CGO_ENABLED=0 GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build -ldflags "$LDFLAGS" -o ./release/${name}_mipsle_sf .
  46. env CGO_ENABLED=0 GOOS=linux GOARCH=mips GOMIPS=softfloat go build -ldflags "$LDFLAGS" -o ./release/${name}_mips_sf .
  47. # if $UPX; then upx -9 ./release/${name}_mips**; fi
  48. tar -C ./release -zcf ./release/${name}_mipsle-$VERSION.tar.gz ./${name}_mipsle
  49. tar -C ./release -zcf ./release/${name}_mips-$VERSION.tar.gz ./${name}_mips
  50. tar -C ./release -zcf ./release/${name}_mipsle-sf-$VERSION.tar.gz ./${name}_mipsle_sf
  51. tar -C ./release -zcf ./release/${name}_mips-sf-$VERSION.tar.gz ./${name}_mips_sf
  52. $MD5 ./release/${name}_mipsle-$VERSION.tar.gz