Files
tsrun/build-linux.sh
T
dmgnr e588b9a527
Deploy tsrun / deploy (push) Failing after 15s
feat: add tsrun bootstrap service and deploy
2026-07-22 06:23:21 +00:00

53 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
MANIFEST_PATH="$ROOT_DIR/secrets/tsrun.manifest.json"
EXAMPLE_MANIFEST_PATH="$ROOT_DIR/secrets/tsrun.manifest.json.example"
LINUX_OUTPUT="$ROOT_DIR/tsrun-linux"
LINUX_UPX_OUTPUT="$ROOT_DIR/tsrun-linux-upx"
INSIDE_NIX_FLAG="${1:-}"
if [[ "$INSIDE_NIX_FLAG" != "--inside-nix" ]]; then
exec nix develop -c bash "$0" --inside-nix
fi
ensure_manifest() {
if [[ ! -f "$MANIFEST_PATH" ]]; then
cp "$EXAMPLE_MANIFEST_PATH" "$MANIFEST_PATH"
printf 'Created %s from the example manifest.\n' "$MANIFEST_PATH"
printf 'Fill in your OAuth credentials and user passwords, then rerun ./build-linux.sh\n'
exit 1
fi
if grep -q 'tskey-client-xxxxxxxx\|replace-me' "$MANIFEST_PATH"; then
printf 'Edit %s with your real OAuth credentials and user passwords, then rerun ./build-linux.sh\n' "$MANIFEST_PATH"
exit 1
fi
}
build() {
printf 'Generating embedded credential blob...\n'
go run ./cmd/buildblob -in "$MANIFEST_PATH" -out internal/embedded/blob_gen.go
printf 'Building tsrun-linux...\n'
env GOOS=linux GOARCH=amd64 go build -trimpath -ldflags='-s -w -buildid=' -o "$LINUX_OUTPUT" ./cmd/tsrun
if command -v upx >/dev/null 2>&1; then
printf 'Building tsrun-linux-upx...\n'
cp "$LINUX_OUTPUT" "$LINUX_UPX_OUTPUT"
upx --best --lzma "$LINUX_UPX_OUTPUT"
else
printf 'Skipping UPX build because upx is not available.\n'
fi
printf 'Build complete:\n'
printf ' %s\n' "$LINUX_OUTPUT"
if [[ -f "$LINUX_UPX_OUTPUT" ]]; then
printf ' %s\n' "$LINUX_UPX_OUTPUT"
fi
}
ensure_manifest
build