#!/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