driftctl/scripts/build.sh

54 lines
1.2 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
#
# This script builds the application from source for multiple platforms.
# Inspired from hashicorp/terraform build script
2021-07-15 15:33:35 +00:00
# https://github.com/hashicorp/terraform/blob/83e6703bf77f60660db4465ef50d30c633f800f1/scripts/build.sh
2020-12-14 15:13:47 +00:00
set -eo pipefail
2021-07-15 15:33:35 +00:00
if ! which goreleaser >/dev/null; then
echo "+ Installing goreleaser..."
go install github.com/goreleaser/goreleaser@v0.173.2
fi
export ENV="${ENV:-dev}"
SINGLE_TARGET="${SINGLE_TARGET:-false}"
2021-07-22 08:43:35 +00:00
2021-07-22 09:05:08 +00:00
# Check configuration
goreleaser check
FLAGS=""
FLAGS+="--rm-dist "
FLAGS+="--parallelism 2 "
CMD="release"
2021-07-22 08:43:35 +00:00
if [ "$SINGLE_TARGET" == "true" ]; then
CMD="build"
FLAGS+="--single-target "
fi
2021-07-22 08:43:35 +00:00
# Only CI system should publish artifacts
2021-07-22 09:05:08 +00:00
# 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 "
2021-08-04 14:23:06 +00:00
fi
if [ "$CI" != true ]; then
2021-08-04 14:20:50 +00:00
FLAGS+="--snapshot "
2021-07-22 08:43:35 +00:00
fi
2021-12-20 10:42:34 +00:00
if [ "$CI" == true ] && [ "$CMD" == "release" ]; then
./scripts/changelog.sh > CHANGELOG.md
FLAGS+="--release-notes CHANGELOG.md "
fi
CMD="goreleaser ${CMD} ${FLAGS}"
echo "+ Building using goreleaser"
echo "+ ENV=${ENV}"
echo "+ CMD=${CMD}"
$CMD