56 lines
1.3 KiB
Bash
Executable File
56 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# This script builds the application from source for multiple platforms.
|
|
# Inspired from hashicorp/terraform build script
|
|
# https://github.com/hashicorp/terraform/blob/83e6703bf77f60660db4465ef50d30c633f800f1/scripts/build.sh
|
|
set -eo pipefail
|
|
|
|
if ! which goreleaser >/dev/null; then
|
|
echo "+ Installing goreleaser..."
|
|
go install github.com/goreleaser/goreleaser@v1.1.0
|
|
fi
|
|
|
|
export ENV="${ENV:-dev}"
|
|
SINGLE_TARGET="${SINGLE_TARGET:-false}"
|
|
|
|
# Check configuration
|
|
goreleaser check
|
|
|
|
FLAGS=""
|
|
FLAGS+="--rm-dist "
|
|
FLAGS+="--parallelism 2 "
|
|
|
|
CMD="release"
|
|
|
|
if [ "$SINGLE_TARGET" == "true" ]; then
|
|
CMD="build"
|
|
FLAGS+="--single-target "
|
|
fi
|
|
|
|
# Only CI system should publish artifacts
|
|
# We may not want to sign artifacts in dev environments
|
|
if [ "$CI" != true ] && [ "$CMD" == "release" ]; then
|
|
FLAGS+="--skip-announce "
|
|
FLAGS+="--skip-publish "
|
|
FLAGS+="--skip-sign "
|
|
fi
|
|
|
|
if [ "$CI" != true ]; then
|
|
FLAGS+="--snapshot "
|
|
fi
|
|
|
|
if [ "$CI" == true ] && [ "$CMD" == "release" ]; then
|
|
echo "Generating changelog..."
|
|
./scripts/changelog.sh > CHANGELOG.md
|
|
cat CHANGELOG.md
|
|
FLAGS+="--release-notes CHANGELOG.md "
|
|
fi
|
|
|
|
CMD="goreleaser ${CMD} ${FLAGS}"
|
|
|
|
echo "+ Building using goreleaser"
|
|
echo "+ ENV=${ENV}"
|
|
echo "+ CMD=${CMD}"
|
|
|
|
$CMD
|