Files
go-zero/tools/goctl/build.sh
2025-05-15 13:59:48 +00:00

50 lines
1.0 KiB
Bash

#!/bin/bash
source build.env
APP_NAME=$APP_NAME
VERSION=$APP_VERSION
BUILD_DIR="dist"
ZIP_DIR="${BUILD_DIR}/zips"
PLATFORMS=(
"linux/amd64"
"linux/arm64"
"darwin/amd64"
"darwin/arm64"
"windows/amd64"
"windows/arm64"
)
rm -rf "${BUILD_DIR}"
mkdir -p "${ZIP_DIR}"
for PLATFORM in "${PLATFORMS[@]}"; do
GOOS=${PLATFORM%/*}
GOARCH=${PLATFORM#*/}
OUTPUT="${BUILD_DIR}/${APP_NAME}-${VERSION}-${GOOS}-${GOARCH}"
if [ "${GOOS}" = "windows" ]; then
OUTPUT="${OUTPUT}.exe"
fi
echo "Building for ${GOOS}/${GOARCH}..."
env GOOS="${GOOS}" GOARCH="${GOARCH}" go build -o "${OUTPUT}" goctl.go
if [ $? -ne 0 ]; then
echo "Error building for ${GOOS}/${GOARCH}"
exit 1
fi
ZIP_OUTPUT="${ZIP_DIR}/$(basename "${OUTPUT}")"
if [ "${GOOS}" = "windows" ]; then
zip -j "${ZIP_OUTPUT%.exe}.zip" "${OUTPUT}"
else
zip -j "${ZIP_OUTPUT}.zip" "${OUTPUT}"
fi
echo "Created zip: ${ZIP_OUTPUT}.zip"
done
echo "All builds completed successfully. Zip files are in ${ZIP_DIR}/"