build-backend 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #!/bin/bash
  2. set -e
  3. set +x
  4. IMAGE=jc21/gotools:latest
  5. DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  6. . "$DIR/../.common.sh"
  7. BUILD_DATE=$(date '+%Y-%m-%d %T %Z')
  8. NOW=$(date --rfc-3339=s)
  9. cd $DIR/../..
  10. if [ "$BUILD_COMMIT" = "" ]; then
  11. BUILD_COMMIT=$(git log -n 1 --format=%h)
  12. fi
  13. if [ "$BUILD_VERSION" = "" ]; then
  14. BUILD_VERSION=$(cat .version)
  15. fi
  16. export CGO_ENABLED=0
  17. export GO111MODULE=on
  18. echo -e "${BLUE}❯ ${GREEN}build-backend:${RESET}"
  19. echo " BUILD_COMMIT: $BUILD_COMMIT"
  20. echo " BUILD_DATE: $BUILD_DATE"
  21. echo " BUILD_VERSION: $BUILD_VERSION"
  22. echo " CGO_ENABLED: ${CGO_ENABLED:-}"
  23. echo " GO111MODULE: ${GO111MODULE:-}"
  24. echo " GOPRIVATE: ${GOPRIVATE:-}"
  25. echo " GOPROXY: ${GOPROXY:-}"
  26. echo " NOW: $NOW"
  27. cleanup() {
  28. docker run --rm -v "$(pwd):/app" "${IMAGE}" chown -R "$(id -u):$(id -g)" /app/bin
  29. }
  30. build_backend() {
  31. echo -e "${BLUE}❯ ${CYAN}Building backend for ${YELLOW}${1}-${2} ...${RESET}"
  32. FILENAME="nginxproxymanager-${1}_${2}"
  33. if [ "$1" = "windows" ]; then
  34. FILENAME="${FILENAME}.exe"
  35. fi
  36. docker run --rm \
  37. -e BUILD_COMMIT="${BUILD_COMMIT:-notset}" \
  38. -e BUILD_DATE="$BUILD_DATE" \
  39. -e GOARCH="${2}" \
  40. -e GOOS="${1}" \
  41. -e GOPRIVATE="${GOPRIVATE:-}" \
  42. -e GOPROXY="${GOPROXY:-}" \
  43. -e NOW="$NOW" \
  44. -e TZ="${TZ:-Australia/Brisbane}" \
  45. -v "$(pwd):/app" \
  46. -w '/app/backend' \
  47. "${IMAGE}" \
  48. go build \
  49. -tags 'json1' \
  50. -buildvcs=false \
  51. -ldflags "-w -s -X main.commit=${BUILD_COMMIT:-notset} -X main.version=${BUILD_VERSION}" \
  52. -o "/app/bin/$FILENAME" \
  53. ./cmd/server
  54. }
  55. docker pull "${IMAGE}"
  56. #build_backend "darwin" "amd64"
  57. #build_backend "darwin" "arm64"
  58. build_backend "linux" "amd64"
  59. build_backend "linux" "arm64"
  60. build_backend "linux" "arm"
  61. #build_backend "openbsd" "amd64"
  62. #build_backend "windows" "amd64"
  63. cleanup
  64. echo -e "${BLUE}❯ ${GREEN}build-backend completed${RESET}"
  65. exit 0