diff --git a/.gitignore b/.gitignore index e660fd9..40c3ff3 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ bin/ +coverage/ diff --git a/Dockerfile b/Dockerfile index 9a0b24f..7810eb3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,28 +1,32 @@ # syntax = docker/dockerfile:1-experimental -FROM --platform=${BUILDPLATFORM} golang:1.15.0-alpine AS base +FROM --platform=${BUILDPLATFORM} golang:1.15.2-alpine AS base WORKDIR /src ENV CGO_ENABLED=0 COPY go.* . -RUN go mod download +RUN --mount=type=cache,target=/go/pkg/mod \ + go mod download FROM base AS build ARG TARGETOS ARG TARGETARCH RUN --mount=target=. \ + --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /out/example . FROM base AS unit-test RUN --mount=target=. \ + --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ mkdir /out && go test -v -coverprofile=/out/cover.out ./... -FROM golangci/golangci-lint:v1.27-alpine AS lint-base +FROM golangci/golangci-lint:v1.31.0-alpine AS lint-base FROM base AS lint RUN --mount=target=. \ --mount=from=lint-base,src=/usr/bin/golangci-lint,target=/usr/bin/golangci-lint \ + --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ --mount=type=cache,target=/root/.cache/golangci-lint \ golangci-lint run --timeout 10m0s ./... @@ -40,4 +44,3 @@ FROM scratch AS bin-windows COPY --from=build /out/example /example.exe FROM bin-${TARGETOS} as bin - diff --git a/go.mod b/go.mod index 4c05c79..c9f916e 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,8 @@ module github.com/chris-crone/containerized-go -go 1.14 +go 1.15 require ( github.com/pkg/errors v0.9.1 - github.com/stretchr/testify v1.5.1 + github.com/stretchr/testify v1.6.1 ) diff --git a/go.sum b/go.sum index 4516e6a..7034f5b 100644 --- a/go.sum +++ b/go.sum @@ -4,10 +4,11 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=