82 lines
1.8 KiB
Plaintext
82 lines
1.8 KiB
Plaintext
|
VERSION 0.7
|
||
|
ARG --global GO_VERSION=1.20.2
|
||
|
ARG --global GOLANGCILINT_VERSION=1.51.2
|
||
|
ARG --global GORELEASER_VERSION=1.16.1
|
||
|
ARG --global GOTESTSUM_VERSION=1.9.0
|
||
|
FROM golang:$GO_VERSION-alpine3.16
|
||
|
WORKDIR /amseltools
|
||
|
|
||
|
SAVE_CODE:
|
||
|
COMMAND
|
||
|
SAVE ARTIFACT go.mod AS LOCAL go.mod
|
||
|
SAVE ARTIFACT go.sum AS LOCAL go.sum
|
||
|
SAVE ARTIFACT *.go AS LOCAL .
|
||
|
|
||
|
ci:
|
||
|
BUILD +lint
|
||
|
BUILD +test
|
||
|
# BUILD +release-dev
|
||
|
|
||
|
code:
|
||
|
COPY go.mod go.sum ./
|
||
|
COPY *.go ./
|
||
|
COPY --dir vendor ./
|
||
|
COPY --dir internal ./
|
||
|
SAVE ARTIFACT . code
|
||
|
|
||
|
install-deps:
|
||
|
FROM +base
|
||
|
RUN set -ex \
|
||
|
&& apk add --no-cache \
|
||
|
build-base \
|
||
|
coreutils \
|
||
|
git
|
||
|
RUN go install -v github.com/golangci/golangci-lint/cmd/golangci-lint@v$GOLANGCILINT_VERSION
|
||
|
RUN go install -v github.com/goreleaser/goreleaser@v$GORELEASER_VERSION
|
||
|
RUN go install -v gotest.tools/gotestsum@v$GOTESTSUM_VERSION
|
||
|
RUN go install -v golang.org/x/tools/cmd/stringer@latest
|
||
|
SAVE ARTIFACT /go/bin gobin
|
||
|
SAVE ARTIFACT /lib lib
|
||
|
SAVE ARTIFACT /usr usr
|
||
|
SAVE IMAGE --push git.wobcom.de:5050/smartmetering/mbuslight:cache-deps
|
||
|
|
||
|
deps:
|
||
|
COPY +install-deps/gobin /go/bin
|
||
|
COPY +install-deps/lib /lib
|
||
|
COPY +install-deps/usr /usr
|
||
|
|
||
|
generate:
|
||
|
FROM +deps
|
||
|
COPY +code/code .
|
||
|
RUN go generate ./...
|
||
|
DO +SAVE_CODE
|
||
|
|
||
|
test:
|
||
|
FROM +deps
|
||
|
COPY +code/code ./
|
||
|
RUN gotestsum \
|
||
|
--junitfile report.xml \
|
||
|
--format standard-verbose \
|
||
|
-- \
|
||
|
-race \
|
||
|
-cover -coverprofile=coverage.out \
|
||
|
-failfast \
|
||
|
./... \
|
||
|
-timeout=120m
|
||
|
SAVE ARTIFACT report.xml AS LOCAL report.xml
|
||
|
SAVE ARTIFACT coverage.out AS LOCAL coverage.out
|
||
|
|
||
|
lint:
|
||
|
FROM +deps
|
||
|
COPY +code/code ./
|
||
|
RUN golangci-lint run
|
||
|
|
||
|
tidy:
|
||
|
RUN apk add --no-cache git
|
||
|
COPY +code/code ./
|
||
|
RUN go mod tidy
|
||
|
RUN go mod vendor
|
||
|
SAVE ARTIFACT go.mod AS LOCAL go.mod
|
||
|
SAVE ARTIFACT go.sum AS LOCAL go.sum
|
||
|
SAVE ARTIFACT vendor AS LOCAL vendor
|