Files
pulse/scripts/release_build_targets.sh
T
2026-08-29 23:48:28 +01:00

93 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# Canonical cross-compilation target matrices shared by release compilation and
# packaging. Keep target names aligned with published asset names.
PULSE_RELEASE_AGENT_TARGETS=(
linux-amd64
linux-arm64
linux-armv7
linux-armv6
linux-386
darwin-amd64
darwin-arm64
freebsd-amd64
freebsd-arm64
windows-amd64
windows-arm64
windows-386
)
PULSE_RELEASE_AGENT_HELPER_TARGETS=(
linux-amd64
linux-arm64
linux-armv7
linux-armv6
linux-386
)
PULSE_RELEASE_AGENT_RUNNER_TARGETS=(
linux-amd64
linux-arm64
linux-armv7
linux-armv6
linux-386
)
PULSE_RELEASE_SERVER_TARGETS=(
linux-amd64
linux-arm64
linux-armv7
linux-armv6
linux-386
)
PULSE_RELEASE_CONTROL_PLANE_TARGETS=(
linux-amd64
linux-arm64
)
pulse_release_target_env() {
case "$1" in
linux-amd64) printf '%s\n' 'GOOS=linux GOARCH=amd64' ;;
linux-arm64) printf '%s\n' 'GOOS=linux GOARCH=arm64' ;;
linux-armv7) printf '%s\n' 'GOOS=linux GOARCH=arm GOARM=7' ;;
linux-armv6) printf '%s\n' 'GOOS=linux GOARCH=arm GOARM=6' ;;
linux-386) printf '%s\n' 'GOOS=linux GOARCH=386' ;;
darwin-amd64) printf '%s\n' 'GOOS=darwin GOARCH=amd64' ;;
darwin-arm64) printf '%s\n' 'GOOS=darwin GOARCH=arm64' ;;
freebsd-amd64) printf '%s\n' 'GOOS=freebsd GOARCH=amd64' ;;
freebsd-arm64) printf '%s\n' 'GOOS=freebsd GOARCH=arm64' ;;
windows-amd64) printf '%s\n' 'GOOS=windows GOARCH=amd64' ;;
windows-arm64) printf '%s\n' 'GOOS=windows GOARCH=arm64' ;;
windows-386) printf '%s\n' 'GOOS=windows GOARCH=386' ;;
*)
echo "Error: unsupported release target: $1" >&2
return 1
;;
esac
}
pulse_release_binary_filename() {
local component="$1"
local target="$2"
local filename
case "${component}" in
agent) filename="pulse-agent-${target}" ;;
agent-helper) filename="pulse-agent-helper-${target}" ;;
agent-runner) filename="pulse-agent-runner-${target}" ;;
mcp) filename="pulse-mcp-${target}" ;;
server) filename="pulse-${target}" ;;
control-plane) filename="pulse-control-plane-${target}" ;;
*)
echo "Error: unsupported release component: ${component}" >&2
return 1
;;
esac
if [[ "${target}" == windows-* ]]; then
filename="${filename}.exe"
fi
printf '%s\n' "${filename}"
}