Allow to build single binary in release mode

main
Elie 2021-07-27 16:47:17 +02:00
parent f54656ccd4
commit 942da9d269
No known key found for this signature in database
GPG Key ID: 399AF69092C727B6
3 changed files with 26 additions and 27 deletions

View File

@ -5,9 +5,9 @@ ARG ARCH="amd64"
WORKDIR /go/src/app
COPY go.mod go.sum Makefile ./
RUN make deps
RUN go mod download
COPY . .
RUN make release
RUN SINGLE_TARGET=true make release
FROM alpine:3.13

View File

@ -21,7 +21,7 @@ all: fmt lint test build
.PHONY: build
build:
ENV=dev ./scripts/build.sh
SINGLE_TARGET=true ./scripts/build.sh
.PHONY: release
release:

View File

@ -10,37 +10,36 @@ if ! which goreleaser >/dev/null; then
go install github.com/goreleaser/goreleaser@v0.173.2
fi
if [ -z $ENV ]; then
echo "Error: ENV variable must be defined"
exit 1
fi
export ENV="${ENV:-dev}"
SINGLE_TARGET="${SINGLE_TARGET:-false}"
# Check configuration
goreleaser check
if [ "$ENV" == "dev" ]; then
echo "+ Building using goreleaser ..."
goreleaser build \
--rm-dist \
--parallelism 2 \
--snapshot \
--single-target
exit 0
fi
FLAGS=""
FLAGS+="--rm-dist "
FLAGS+="--snapshot "
FLAGS+="--parallelism 2 "
GRFLAGS=""
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 ]; then
GRFLAGS+="--snapshot "
GRFLAGS+="--skip-announce "
GRFLAGS+="--skip-publish "
GRFLAGS+="--skip-sign "
if [ "$CI" != true ] && [ "$CMD" == "release" ]; then
FLAGS+="--skip-announce "
FLAGS+="--skip-publish "
FLAGS+="--skip-sign "
fi
echo "+ Building using goreleaser ..."
goreleaser release \
--rm-dist \
--parallelism 2 \
${GRFLAGS}
CMD="goreleaser ${CMD} ${FLAGS}"
echo "+ Building using goreleaser"
echo "+ ENV=${ENV}"
echo "+ CMD=${CMD}"
$CMD