mirror of https://github.com/coder/coder.git
chore: embed static files in debug builds (#12449)
This commit is contained in:
parent
3e6e1e6f10
commit
bd752a6d8b
|
@ -38,8 +38,9 @@ sign_darwin="${CODER_SIGN_DARWIN:-0}"
|
||||||
output_path=""
|
output_path=""
|
||||||
agpl="${CODER_BUILD_AGPL:-0}"
|
agpl="${CODER_BUILD_AGPL:-0}"
|
||||||
boringcrypto=${CODER_BUILD_BORINGCRYPTO:-0}
|
boringcrypto=${CODER_BUILD_BORINGCRYPTO:-0}
|
||||||
|
debug=0
|
||||||
|
|
||||||
args="$(getopt -o "" -l version:,os:,arch:,output:,slim,agpl,sign-darwin,boringcrypto -- "$@")"
|
args="$(getopt -o "" -l version:,os:,arch:,output:,slim,agpl,sign-darwin,boringcrypto,debug -- "$@")"
|
||||||
eval set -- "$args"
|
eval set -- "$args"
|
||||||
while true; do
|
while true; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
@ -76,6 +77,10 @@ while true; do
|
||||||
boringcrypto=1
|
boringcrypto=1
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
--debug)
|
||||||
|
debug=1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
--)
|
--)
|
||||||
shift
|
shift
|
||||||
break
|
break
|
||||||
|
@ -102,10 +107,12 @@ if [[ "$sign_darwin" == 1 ]]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ldflags=(
|
ldflags=(
|
||||||
-s
|
|
||||||
-w
|
|
||||||
-X "'github.com/coder/coder/v2/buildinfo.tag=$version'"
|
-X "'github.com/coder/coder/v2/buildinfo.tag=$version'"
|
||||||
)
|
)
|
||||||
|
# Disable deubgger information if not building a binary for debuggers.
|
||||||
|
if [[ "$debug" == 0 ]]; then
|
||||||
|
ldflags+=(-s -w)
|
||||||
|
fi
|
||||||
|
|
||||||
# We use ts_omit_aws here because on Linux it prevents Tailscale from importing
|
# We use ts_omit_aws here because on Linux it prevents Tailscale from importing
|
||||||
# github.com/aws/aws-sdk-go-v2/aws, which adds 7 MB to the binary.
|
# github.com/aws/aws-sdk-go-v2/aws, which adds 7 MB to the binary.
|
||||||
|
@ -122,6 +129,11 @@ if [[ "$agpl" == 1 ]]; then
|
||||||
fi
|
fi
|
||||||
build_args+=(-ldflags "${ldflags[*]}")
|
build_args+=(-ldflags "${ldflags[*]}")
|
||||||
|
|
||||||
|
# Disable optimizations if building a binary for debuggers.
|
||||||
|
if [[ "$debug" == 1 ]]; then
|
||||||
|
build_args+=(-gcflags "all=-N -l")
|
||||||
|
fi
|
||||||
|
|
||||||
# Compute default output path.
|
# Compute default output path.
|
||||||
if [[ "$output_path" == "" ]]; then
|
if [[ "$output_path" == "" ]]; then
|
||||||
mkdir -p "build"
|
mkdir -p "build"
|
||||||
|
|
|
@ -32,6 +32,7 @@ pushd "$PROJECT_ROOT"
|
||||||
mkdir -p ./.coderv2
|
mkdir -p ./.coderv2
|
||||||
CODER_DEV_BIN="$(realpath "$RELATIVE_BINARY_PATH")"
|
CODER_DEV_BIN="$(realpath "$RELATIVE_BINARY_PATH")"
|
||||||
CODER_DEV_DIR="$(realpath ./.coderv2)"
|
CODER_DEV_DIR="$(realpath ./.coderv2)"
|
||||||
|
CODER_DELVE_DEBUG_BIN=$(realpath "./build/coder_debug_${GOOS}_${GOARCH}")
|
||||||
popd
|
popd
|
||||||
|
|
||||||
case $BINARY_TYPE in
|
case $BINARY_TYPE in
|
||||||
|
@ -59,7 +60,20 @@ esac
|
||||||
runcmd=("${CODER_DEV_BIN}")
|
runcmd=("${CODER_DEV_BIN}")
|
||||||
if [[ "${DEBUG_DELVE}" == 1 ]]; then
|
if [[ "${DEBUG_DELVE}" == 1 ]]; then
|
||||||
set -x
|
set -x
|
||||||
runcmd=(dlv debug --headless --continue --listen 127.0.0.1:12345 --accept-multiclient ./cmd/coder --)
|
build_flags=(
|
||||||
|
--os "$GOOS"
|
||||||
|
--arch "$GOARCH"
|
||||||
|
--output "$CODER_DELVE_DEBUG_BIN"
|
||||||
|
--debug
|
||||||
|
)
|
||||||
|
if [[ "$BINARY_TYPE" == "coder-slim" ]]; then
|
||||||
|
build_flags+=(--slim)
|
||||||
|
fi
|
||||||
|
# All the prerequisites should be built above when we refreshed the regular
|
||||||
|
# binary, so we can just build the debug binary here without having to worry
|
||||||
|
# about/use the makefile.
|
||||||
|
./scripts/build_go.sh "${build_flags[@]}"
|
||||||
|
runcmd=(dlv exec --headless --continue --listen 127.0.0.1:12345 --accept-multiclient "$CODER_DELVE_DEBUG_BIN" --)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CGO_ENABLED=0 exec "${runcmd[@]}" --global-config "${CODER_DEV_DIR}" "$@"
|
exec "${runcmd[@]}" --global-config "${CODER_DEV_DIR}" "$@"
|
||||||
|
|
Loading…
Reference in New Issue