Files
job-search/scripts/build.sh
T
2026-09-23 14:32:50 +01:00

41 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# Build script for JobSearch release
set -euo pipefail
BUILD_DIR="build"
RELEASE_DIR="release"
DO_RELEASE=1
BUILD_TIME=$(date -u '+%Y-%m-%d_%H:%M:%S')
GIT_COMMIT=
VERSION=$(git describe --tags --abbrev=0 2>/dev/null || echo 'unknown')
VERSION_TAG=$(git describe --tags 2>/dev/null || echo 'unknown')
if [ "$VERSION" != "$VERSION_TAG" ]; then
echo "Development build detected! (not installing to release)"
GIT_COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo 'unknown')
VERSION="${VERSION}.${GIT_COMMIT}"
DO_RELEASE=0
fi
LD_FLAGS=${LD_FLAGS:-""}
LD_FLAGS="$LD_FLAGS -X git.avsdev.uk/Go/JobSearch/internal/version.Version=${VERSION}"
LD_FLAGS="$LD_FLAGS -X git.avsdev.uk/Go/JobSearch/internal/version.BuildTime=${BUILD_TIME}"
if [ "$GIT_COMMIT" != "" ]; then
LD_FLAGS="$LD_FLAGS -X git.avsdev.uk/Go/JobSearch/internal/version.GitCommit=${GIT_COMMIT}"
fi
# Build binary with version info
go build \
-ldflags="$LD_FLAGS" \
-trimpath \
-o $BUILD_DIR/job-search-$VERSION \
./
# If proper release, copy to output directory for packaging
if [[ $DO_RELEASE -eq 1 ]]; then
install -DT $BUILD_DIR/job-search-$VERSION $RELEASE_DIR/job-search
fi