e8421fc3ff
The Linux build host reads these scripts from a shared mount of the
Windows working tree, where autocrlf produces CRLF line endings. bash
then failed on `set -o pipefail` (trailing CR in the option name), and
the version parsed from version.go carried a trailing CR into the Docker
tag ("...:0.6.0\r": invalid reference format).
- Add .gitattributes forcing LF on *.sh so Windows checkouts stay LF.
- Strip CR from the version extraction in all three Linux build scripts.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
25 lines
1.0 KiB
Bash
25 lines
1.0 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Optional first argument lets a developer or CI job choose the output path. The
|
|
# default includes the application version and target platform.
|
|
version="$(sed -n 's/^var Version = "\(.*\)"/\1/p' src/app/version.go | tr -d '\r')"
|
|
version="${version:-0.0.0-dev}"
|
|
output="${1:-dist/linux/gosentry-${version}-linux-amd64}"
|
|
mkdir -p "$(dirname "$output")"
|
|
|
|
# Fyne needs CGO for its native desktop backend. The script pins the target to
|
|
# linux/amd64 because this is the first supported Linux artifact; other
|
|
# architectures can be added later as explicit build targets.
|
|
export CGO_ENABLED=1
|
|
export GOOS=linux
|
|
export GOARCH=amd64
|
|
|
|
# -trimpath removes local machine paths from debug/build metadata. -s -w strips
|
|
# symbol/debug tables to keep the desktop binary smaller.
|
|
go build -trimpath -ldflags "-s -w -X gitea.mixdep.ru/mix/gosentry/src/app.Version=${version}" -o "$output" ./cmd/gosentry
|
|
|
|
# The application icon is embedded by Go, so the Linux build does not need a
|
|
# sidecar assets directory beside the executable.
|
|
echo "Built $output"
|