diff --git a/scripts/build.sh b/scripts/build.sh index 2f54329..f3f281d 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -1,13 +1,16 @@ #!/usr/bin/env bash -# Build script for JobSearch release +# Build script for job-search release set -euo pipefail BUILD_DIR="build" RELEASE_DIR="release" +DO_RELEASE=0 -DO_RELEASE=1 +if [[ $* == *--release* ]]; then + DO_RELEASE=1 +fi BUILD_TIME=$(date -u '+%Y-%m-%d_%H:%M:%S') GIT_COMMIT= @@ -15,15 +18,23 @@ 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}" + echo "Dirty commits detected, marking as development build" + GIT_COMMIT=$(git rev-parse HEAD 2>/dev/null || echo 'unknown') + GIT_COMMIT_SHORT=$(git rev-parse --short HEAD 2>/dev/null || echo 'unknown') + VERSION="${VERSION}.${GIT_COMMIT_SHORT}" + DO_RELEASE=0 + if [[ $* == *--release* && $* == *--force* ]]; then + echo "Forcing release build anyway" + DO_RELEASE=1 + fi 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 [[ $DO_RELEASE -ne 1 ]]; then + LD_FLAGS="$LD_FLAGS -X git.avsdev.uk/Go/JobSearch/internal/version.BuildTime=${BUILD_TIME}" +fi if [ "$GIT_COMMIT" != "" ]; then LD_FLAGS="$LD_FLAGS -X git.avsdev.uk/Go/JobSearch/internal/version.GitCommit=${GIT_COMMIT}" fi @@ -33,9 +44,16 @@ go build \ -ldflags="$LD_FLAGS" \ -trimpath \ -o $BUILD_DIR/job-search-$VERSION \ - ./ + ./cmd/jobsearch + +echo "Built $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 \ No newline at end of file + ARCH=`dpkg --print-architecture` + tar -czf $RELEASE_DIR/job-search-$VERSION-$ARCH.tar.gz \ + --transform "s,^$RELEASE_DIR/,job-search-$VERSION-$ARCH/," \ + $RELEASE_DIR/job-search + echo "Installed $RELEASE_DIR/job-search" +fi