You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -31,27 +32,32 @@ FROM --platform=${BUILDPLATFORM} toolchain AS tools
31
32
ENV GO111MODULE on
32
33
ARG CGO_ENABLED
33
34
ENV CGO_ENABLED ${CGO_ENABLED}
35
+
ARG GOTOOLCHAIN
36
+
ENV GOTOOLCHAIN ${GOTOOLCHAIN}
37
+
ARG GOEXPERIMENT
38
+
ENV GOEXPERIMENT ${GOEXPERIMENT}
34
39
ENV GOPATH /go
40
+
ARG DEEPCOPY_VERSION
41
+
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg go install github.com/siderolabs/deep-copy@${DEEPCOPY_VERSION} \
42
+
&& mv /go/bin/deep-copy /bin/deep-copy
35
43
ARG GOLANGCILINT_VERSION
36
44
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg go install github.com/golangci/golangci-lint/cmd/golangci-lint@${GOLANGCILINT_VERSION} \
37
45
&& mv /go/bin/golangci-lint /bin/golangci-lint
38
-
ARG GOFUMPT_VERSION
39
-
RUN go install mvdan.cc/gofumpt@${GOFUMPT_VERSION} \
40
-
&& mv /go/bin/gofumpt /bin/gofumpt
41
46
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg go install golang.org/x/vuln/cmd/govulncheck@latest \
42
47
&& mv /go/bin/govulncheck /bin/govulncheck
43
48
ARG GOIMPORTS_VERSION
44
49
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg go install golang.org/x/tools/cmd/goimports@${GOIMPORTS_VERSION} \
45
50
&& mv /go/bin/goimports /bin/goimports
46
-
ARGDEEPCOPY_VERSION
47
-
RUN--mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg go install github.com/siderolabs/deep-copy@${DEEPCOPY_VERSION} \
RUN --mount=type=cache,target=/go/pkg go mod download
56
62
RUN --mount=type=cache,target=/go/pkg go mod verify
57
63
COPY ./cmd ./cmd
@@ -69,16 +75,18 @@ RUN FILES="$(gofumpt -l .)" && test -z "${FILES}" || (echo -e "Source code is no
69
75
70
76
# runs goimports
71
77
FROM base AS lint-goimports
72
-
RUN FILES="$(goimports -l -local github.com/siderolabs/talos-backup .)" && test -z "${FILES}" || (echo -e "Source code is not formatted with 'goimports -w -local github.com/siderolabs/talos-backup .':\n${FILES}"; exit 1)
78
+
RUN FILES="$(goimports -l -local github.com/siderolabs/talos-backup/ .)" && test -z "${FILES}" || (echo -e "Source code is not formatted with 'goimports -w -local github.com/siderolabs/talos-backup/ .':\n${FILES}"; exit 1)
73
79
74
80
# runs golangci-lint
75
81
FROM base AS lint-golangci-lint
82
+
WORKDIR /src
76
83
COPY .golangci.yml .
77
84
ENV GOGC 50
78
85
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/root/.cache/golangci-lint --mount=type=cache,target=/go/pkg golangci-lint run --config .golangci.yml
79
86
80
87
# runs govulncheck
81
88
FROM base AS lint-govulncheck
89
+
WORKDIR /src
82
90
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg govulncheck ./...
83
91
84
92
# builds talos-backup-linux-amd64
@@ -99,11 +107,13 @@ RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/g
99
107
100
108
# runs unit-tests with race detector
101
109
FROM base AS unit-tests-race
110
+
WORKDIR /src
102
111
ARG TESTPKGS
103
112
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg --mount=type=cache,target=/tmp CGO_ENABLED=1 go test -v -race -count 1 ${TESTPKGS}
104
113
105
114
# runs unit-tests
106
115
FROM base AS unit-tests-run
116
+
WORKDIR /src
107
117
ARG TESTPKGS
108
118
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg --mount=type=cache,target=/tmp go test -v -covermode=atomic -coverprofile=coverage.txt -coverpkg=${TESTPKGS} -count 1 ${TESTPKGS}
109
119
@@ -118,7 +128,7 @@ FROM scratch AS talos-backup-linux-arm64
0 commit comments