Updated build script to produce release archives for git and to be more verbose
This commit is contained in:
1 parent
dd26976f76
commit
8b0cecb51b
1 file changed
+26
-8
+26
-8
@@ -1,13 +1,16 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Build script for JobSearch release
|
# Build script for job-search release
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
BUILD_DIR="build"
|
BUILD_DIR="build"
|
||||||
RELEASE_DIR="release"
|
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')
|
BUILD_TIME=$(date -u '+%Y-%m-%d_%H:%M:%S')
|
||||||
GIT_COMMIT=
|
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')
|
VERSION_TAG=$(git describe --tags 2>/dev/null || echo 'unknown')
|
||||||
|
|
||||||
if [ "$VERSION" != "$VERSION_TAG" ]; then
|
if [ "$VERSION" != "$VERSION_TAG" ]; then
|
||||||
echo "Development build detected! (not installing to release)"
|
echo "Dirty commits detected, marking as development build"
|
||||||
GIT_COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo 'unknown')
|
GIT_COMMIT=$(git rev-parse HEAD 2>/dev/null || echo 'unknown')
|
||||||
VERSION="${VERSION}.${GIT_COMMIT}"
|
GIT_COMMIT_SHORT=$(git rev-parse --short HEAD 2>/dev/null || echo 'unknown')
|
||||||
|
VERSION="${VERSION}.${GIT_COMMIT_SHORT}"
|
||||||
|
|
||||||
DO_RELEASE=0
|
DO_RELEASE=0
|
||||||
|
if [[ $* == *--release* && $* == *--force* ]]; then
|
||||||
|
echo "Forcing release build anyway"
|
||||||
|
DO_RELEASE=1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LD_FLAGS=${LD_FLAGS:-""}
|
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.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
|
if [ "$GIT_COMMIT" != "" ]; then
|
||||||
LD_FLAGS="$LD_FLAGS -X git.avsdev.uk/Go/JobSearch/internal/version.GitCommit=${GIT_COMMIT}"
|
LD_FLAGS="$LD_FLAGS -X git.avsdev.uk/Go/JobSearch/internal/version.GitCommit=${GIT_COMMIT}"
|
||||||
fi
|
fi
|
||||||
@@ -33,9 +44,16 @@ go build \
|
|||||||
-ldflags="$LD_FLAGS" \
|
-ldflags="$LD_FLAGS" \
|
||||||
-trimpath \
|
-trimpath \
|
||||||
-o $BUILD_DIR/job-search-$VERSION \
|
-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 proper release, copy to output directory for packaging
|
||||||
if [[ $DO_RELEASE -eq 1 ]]; then
|
if [[ $DO_RELEASE -eq 1 ]]; then
|
||||||
install -DT $BUILD_DIR/job-search-$VERSION $RELEASE_DIR/job-search
|
install -DT $BUILD_DIR/job-search-$VERSION $RELEASE_DIR/job-search
|
||||||
fi
|
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
|
||||||
Reference in new issue
Block a user