diff --git a/Dockerfile b/Dockerfile index 34d8749..a037f02 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,34 +1,20 @@ -ARG GO_VERSION=1.12 +ARG GO_VERSION=1.12.1 # The build stage is used for building the aws-env binary and running tests. FROM golang:${GO_VERSION} AS build - -ARG GO_CI_VERSION=v1.15.0 - -RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh \ - | sh -s -- -b /usr/local/bin ${GO_CI_VERSION} - WORKDIR /code - ENV GO111MODULE=on - COPY go.mod go.sum ./ - RUN go mod download - COPY . . - ARG GIT_COMMIT=unknown ARG BUILD_DATE=unknown ARG VERSION=0.0.1 ARG BUILD_NUMBER=0 - RUN make build # The release (default) stage is a minimal production image suitable for use # as the base image to applications. -FROM alpine AS release - +FROM alpine COPY --from=build /code/aws-env /usr/local/bin - ENTRYPOINT ["aws-env"] diff --git a/Makefile b/Makefile index 47fe6f7..af0ecff 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,4 @@ +GO_VERSION ?= 1.12.1 BINARIES = aws-env WD ?= $(shell pwd) NAMESPACE=sendgrid @@ -28,7 +29,7 @@ build-docker: --build-arg BUILD_DATE \ --build-arg VERSION \ --build-arg BUILD_NUMBER \ - --target build . + . @docker tag aws-env docker.sendgrid.net/sendgrid/aws-env .PHONY: push @@ -47,7 +48,7 @@ push-pre-tagged: .PHONY: artifact artifact: build-docker - @docker run -v $(WD):/dist --rm aws-env cp /code/aws-env /dist/ + @docker run -v $(WD):/dist --rm aws-env cp /usr/local/bin/aws-env /dist/ .PHONY: clean clean: @@ -55,10 +56,11 @@ clean: .PHONY: test test: coverage.txt -coverage.txt: build-docker $(GO_FILES) +coverage.txt: $(GO_FILES) @docker run --rm \ -v $(WD):/code \ - aws-env \ + -w /code \ + golang:$(GO_VERSION) \ sh -c "\ go test -mod readonly -v -race -coverprofile=coverage.out ./... && \ go tool cover -html=coverage.out -o coverage.html && \ @@ -79,9 +81,14 @@ else endif .PHONY: lint -lint: build-docker - @docker run --rm aws-env \ - golangci-lint -v run --enable-all -D gochecknoglobals +lint: + @docker run --rm \ + -v $(WD):/code \ + -w /code \ + golang:$(GO_VERSION) \ + sh -c "\ + curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b /go/bin v1.16.0 && \ + golangci-lint -v run --enable-all -D gochecknoglobals" .PHONY: release release: