diff --git a/Dockerfile b/Dockerfile index bb025c21..f1d681d4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 diff --git a/Makefile b/Makefile index b93f4553..0194845c 100644 --- a/Makefile +++ b/Makefile @@ -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: diff --git a/scripts/build.sh b/scripts/build.sh index 9ddd9851..289c6a08 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -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