40 lines
947 B
Bash
Executable File
40 lines
947 B
Bash
Executable File
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
ROOT_DIR=$(CDPATH= cd -- "$(dirname "$0")/.." && pwd)
|
|
RELEASE_DIR="${ROOT_DIR}/release"
|
|
CACHE_DIR="${RELEASE_DIR}/.gocache"
|
|
VERSION=${VERSION:-$(git -C "${ROOT_DIR}" describe --tags --always 2>/dev/null || echo dev)}
|
|
|
|
build_target() {
|
|
goos="$1"
|
|
goarch="$2"
|
|
output_name="$3"
|
|
|
|
echo "building ${goos}/${goarch} -> ${output_name}"
|
|
env \
|
|
GOCACHE="${CACHE_DIR}" \
|
|
GOOS="${goos}" \
|
|
GOARCH="${goarch}" \
|
|
go build \
|
|
-ldflags "-X main.Version=${VERSION}" \
|
|
-o "${RELEASE_DIR}/${output_name}" \
|
|
./cmd/jukebox
|
|
}
|
|
|
|
command -v go >/dev/null 2>&1 || {
|
|
echo "error: go not found in PATH" >&2
|
|
exit 1
|
|
}
|
|
|
|
mkdir -p "${RELEASE_DIR}" "${CACHE_DIR}"
|
|
|
|
build_target darwin arm64 jukebox-darwin-arm64
|
|
build_target windows 386 jukebox-windows-386.exe
|
|
|
|
echo ""
|
|
echo "artifacts:"
|
|
echo " ${RELEASE_DIR}/jukebox-darwin-arm64"
|
|
echo " ${RELEASE_DIR}/jukebox-windows-386.exe"
|