Skip to content

Commit 17b8780

Browse files
committed
chore: rekres
Rekres, also fixes: #7. Signed-off-by: Noel Georgi <[email protected]>
1 parent 6b31cb1 commit 17b8780

File tree

5 files changed

+67
-38
lines changed

5 files changed

+67
-38
lines changed

.dockerignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
22
#
3-
# Generated on 2023-04-25T14:00:59Z by kres latest.
3+
# Generated on 2023-09-05T19:06:43Z by kres 0d3003d-dirty.
44

55
*
66
!cmd
@@ -9,5 +9,6 @@
99
!go.mod
1010
!go.sum
1111
!.golangci.yml
12+
!CHANGELOG.md
1213
!README.md
1314
!.markdownlint.json

.drone.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
33
#
4-
# Generated on 2023-05-03T17:37:17Z by kres latest.
4+
# Generated on 2023-09-05T19:06:43Z by kres 0d3003d-dirty.
55

66
kind: pipeline
77
type: kubernetes
@@ -288,7 +288,7 @@ steps:
288288

289289
services:
290290
- name: docker
291-
image: docker:23.0-dind
291+
image: docker:24.0-dind
292292
entrypoint:
293293
- dockerd
294294
commands:
@@ -298,6 +298,8 @@ services:
298298
- --log-level=error
299299
privileged: true
300300
volumes:
301+
- name: dev
302+
path: /dev
301303
- name: outer-docker-socket
302304
path: /var/outer-run
303305
- name: docker-socket
@@ -320,6 +322,9 @@ volumes:
320322
- name: ssh
321323
temp:
322324
medium: memory
325+
- name: dev
326+
host:
327+
path: /dev
323328

324329
trigger:
325330
branch:

.golangci.yml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
22
#
3-
# Generated on 2023-04-25T14:00:59Z by kres latest.
3+
# Generated on 2023-09-05T19:06:43Z by kres 0d3003d-dirty.
44

55
# options for analysis running
66
run:
@@ -36,7 +36,7 @@ linters-settings:
3636
lines: 60
3737
statements: 40
3838
gci:
39-
local-prefixes: github.com/siderolabs/talos-backup
39+
local-prefixes: github.com/siderolabs/talos-backup/
4040
gocognit:
4141
min-complexity: 30
4242
ireturn:
@@ -65,7 +65,7 @@ linters-settings:
6565
gofmt:
6666
simplify: true
6767
goimports:
68-
local-prefixes: github.com/siderolabs/talos-backup
68+
local-prefixes: github.com/siderolabs/talos-backup/
6969
golint:
7070
min-confidence: 0.8
7171
gomnd:
@@ -74,9 +74,8 @@ linters-settings:
7474
govet:
7575
check-shadowing: true
7676
enable-all: true
77-
depguard:
78-
list-type: blacklist
79-
include-go-root: false
77+
disable:
78+
- loopclosure
8079
lll:
8180
line-length: 200
8281
tab-width: 4
@@ -118,6 +117,10 @@ linters-settings:
118117
cyclop:
119118
# the maximal code complexity to report
120119
max-complexity: 20
120+
# depguard:
121+
# Main:
122+
# deny:
123+
# - github.com/OpenPeeDeeP/depguard # this is just an example
121124

122125
linters:
123126
enable-all: true
@@ -145,6 +148,8 @@ linters:
145148
- typecheck
146149
- varnamelen
147150
- wrapcheck
151+
- depguard # Disabled because starting with golangci-lint 1.53.0 it doesn't allow denylist alone anymore
152+
- tagalign
148153
# abandoned linters for which golangci shows the warning that the repo is archived by the owner
149154
- interfacer
150155
- maligned

Dockerfile

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
1-
# syntax = docker/dockerfile-upstream:1.5.2-labs
1+
# syntax = docker/dockerfile-upstream:1.6.0-labs
22

33
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
44
#
5-
# Generated on 2023-05-03T17:32:52Z by kres latest.
5+
# Generated on 2023-09-05T19:06:43Z by kres 0d3003d-dirty.
66

77
ARG TOOLCHAIN
88

99
# cleaned up specs and compiled versions
1010
FROM scratch AS generate
1111

12-
FROM ghcr.io/siderolabs/ca-certificates:v1.4.1 AS image-ca-certificates
12+
FROM ghcr.io/siderolabs/ca-certificates:v1.6.0-alpha.0-10-gd3d7d29 AS image-ca-certificates
1313

14-
FROM ghcr.io/siderolabs/fhs:v1.4.1 AS image-fhs
14+
FROM ghcr.io/siderolabs/fhs:v1.6.0-alpha.0-10-gd3d7d29 AS image-fhs
1515

1616
# runs markdownlint
17-
FROM docker.io/node:20.0.0-alpine3.16 AS lint-markdown
17+
FROM docker.io/node:20.5.1-alpine3.18 AS lint-markdown
1818
WORKDIR /src
19-
RUN npm i -g markdownlint-cli@0.33.0
19+
RUN npm i -g markdownlint-cli@0.35.0
2020
2121
COPY .markdownlint.json .
22+
COPY ./CHANGELOG.md ./CHANGELOG.md
2223
COPY ./README.md ./README.md
2324
RUN markdownlint --ignore "CHANGELOG.md" --ignore "**/node_modules/**" --ignore '**/hack/chglog/**' --rules node_modules/sentences-per-line/index.js .
2425

@@ -31,27 +32,32 @@ FROM --platform=${BUILDPLATFORM} toolchain AS tools
3132
ENV GO111MODULE on
3233
ARG CGO_ENABLED
3334
ENV CGO_ENABLED ${CGO_ENABLED}
35+
ARG GOTOOLCHAIN
36+
ENV GOTOOLCHAIN ${GOTOOLCHAIN}
37+
ARG GOEXPERIMENT
38+
ENV GOEXPERIMENT ${GOEXPERIMENT}
3439
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
3543
ARG GOLANGCILINT_VERSION
3644
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} \
3745
&& 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
4146
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg go install golang.org/x/vuln/cmd/govulncheck@latest \
4247
&& mv /go/bin/govulncheck /bin/govulncheck
4348
ARG GOIMPORTS_VERSION
4449
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} \
4550
&& mv /go/bin/goimports /bin/goimports
46-
ARG DEEPCOPY_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} \
48-
&& mv /go/bin/deep-copy /bin/deep-copy
51+
ARG GOFUMPT_VERSION
52+
RUN go install mvdan.cc/gofumpt@${GOFUMPT_VERSION} \
53+
&& mv /go/bin/gofumpt /bin/gofumpt
4954

5055
# tools and sources
5156
FROM tools AS base
5257
WORKDIR /src
53-
COPY ./go.mod .
54-
COPY ./go.sum .
58+
COPY go.mod go.mod
59+
COPY go.sum go.sum
60+
RUN cd .
5561
RUN --mount=type=cache,target=/go/pkg go mod download
5662
RUN --mount=type=cache,target=/go/pkg go mod verify
5763
COPY ./cmd ./cmd
@@ -69,16 +75,18 @@ RUN FILES="$(gofumpt -l .)" && test -z "${FILES}" || (echo -e "Source code is no
6975

7076
# runs goimports
7177
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)
7379

7480
# runs golangci-lint
7581
FROM base AS lint-golangci-lint
82+
WORKDIR /src
7683
COPY .golangci.yml .
7784
ENV GOGC 50
7885
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
7986

8087
# runs govulncheck
8188
FROM base AS lint-govulncheck
89+
WORKDIR /src
8290
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg govulncheck ./...
8391

8492
# builds talos-backup-linux-amd64
@@ -99,11 +107,13 @@ RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/g
99107

100108
# runs unit-tests with race detector
101109
FROM base AS unit-tests-race
110+
WORKDIR /src
102111
ARG TESTPKGS
103112
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}
104113

105114
# runs unit-tests
106115
FROM base AS unit-tests-run
116+
WORKDIR /src
107117
ARG TESTPKGS
108118
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}
109119

@@ -118,7 +128,7 @@ FROM scratch AS talos-backup-linux-arm64
118128
COPY --from=talos-backup-linux-arm64-build /talos-backup-linux-arm64 /talos-backup-linux-arm64
119129

120130
FROM scratch AS unit-tests
121-
COPY --from=unit-tests-run /src/coverage.txt /coverage.txt
131+
COPY --from=unit-tests-run /src/coverage.txt /coverage-unit-tests.txt
122132

123133
FROM talos-backup-linux-${TARGETARCH} AS talos-backup
124134

Makefile

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,33 @@
11
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
22
#
3-
# Generated on 2023-05-03T17:34:17Z by kres latest.
3+
# Generated on 2023-09-05T19:06:43Z by kres 0d3003d-dirty.
44

55
# common variables
66

77
SHA := $(shell git describe --match=none --always --abbrev=8 --dirty)
88
TAG := $(shell git describe --tag --always --dirty)
9+
ABBREV_TAG := $(shell git describe --tags >/dev/null 2>/dev/null && git describe --tag --always --match v[0-9]\* --abbrev=0 || echo 'undefined')
910
BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
1011
ARTIFACTS := _out
1112
WITH_DEBUG ?= false
1213
WITH_RACE ?= false
1314
REGISTRY ?= ghcr.io
1415
USERNAME ?= siderolabs
1516
REGISTRY_AND_USERNAME ?= $(REGISTRY)/$(USERNAME)
16-
GOLANGCILINT_VERSION ?= v1.52.2
17-
GOFUMPT_VERSION ?= v0.5.0
18-
GO_VERSION ?= 1.20
19-
GOIMPORTS_VERSION ?= v0.8.0
20-
PROTOBUF_GO_VERSION ?= 1.28.1
17+
PROTOBUF_GO_VERSION ?= 1.31.0
2118
GRPC_GO_VERSION ?= 1.3.0
22-
GRPC_GATEWAY_VERSION ?= 2.15.2
19+
GRPC_GATEWAY_VERSION ?= 2.17.1
2320
VTPROTOBUF_VERSION ?= 0.4.0
2421
DEEPCOPY_VERSION ?= v0.5.5
22+
GOLANGCILINT_VERSION ?= v1.54.2
23+
GOFUMPT_VERSION ?= v0.5.0
24+
GO_VERSION ?= 1.21
25+
GOIMPORTS_VERSION ?= v0.12.0
2526
GO_BUILDFLAGS ?=
2627
GO_LDFLAGS ?=
2728
CGO_ENABLED ?= 0
29+
GOTOOLCHAIN ?= local
30+
GOEXPERIMENT ?= loopvar
2831
TESTPKGS ?= ./...
2932
KRES_IMAGE ?= ghcr.io/siderolabs/kres:latest
3033
CONFORMANCE_IMAGE ?= ghcr.io/siderolabs/conform:latest
@@ -37,28 +40,32 @@ PROGRESS ?= auto
3740
PUSH ?= false
3841
CI_ARGS ?=
3942
COMMON_ARGS = --file=Dockerfile
43+
COMMON_ARGS += --provenance=false
4044
COMMON_ARGS += --progress=$(PROGRESS)
4145
COMMON_ARGS += --platform=$(PLATFORM)
4246
COMMON_ARGS += --push=$(PUSH)
4347
COMMON_ARGS += --build-arg=ARTIFACTS="$(ARTIFACTS)"
4448
COMMON_ARGS += --build-arg=SHA="$(SHA)"
4549
COMMON_ARGS += --build-arg=TAG="$(TAG)"
50+
COMMON_ARGS += --build-arg=ABBREV_TAG="$(ABBREV_TAG)"
4651
COMMON_ARGS += --build-arg=USERNAME="$(USERNAME)"
4752
COMMON_ARGS += --build-arg=REGISTRY="$(REGISTRY)"
4853
COMMON_ARGS += --build-arg=TOOLCHAIN="$(TOOLCHAIN)"
4954
COMMON_ARGS += --build-arg=CGO_ENABLED="$(CGO_ENABLED)"
5055
COMMON_ARGS += --build-arg=GO_BUILDFLAGS="$(GO_BUILDFLAGS)"
5156
COMMON_ARGS += --build-arg=GO_LDFLAGS="$(GO_LDFLAGS)"
52-
COMMON_ARGS += --build-arg=GOLANGCILINT_VERSION="$(GOLANGCILINT_VERSION)"
53-
COMMON_ARGS += --build-arg=GOFUMPT_VERSION="$(GOFUMPT_VERSION)"
54-
COMMON_ARGS += --build-arg=GOIMPORTS_VERSION="$(GOIMPORTS_VERSION)"
57+
COMMON_ARGS += --build-arg=GOTOOLCHAIN="$(GOTOOLCHAIN)"
58+
COMMON_ARGS += --build-arg=GOEXPERIMENT="$(GOEXPERIMENT)"
5559
COMMON_ARGS += --build-arg=PROTOBUF_GO_VERSION="$(PROTOBUF_GO_VERSION)"
5660
COMMON_ARGS += --build-arg=GRPC_GO_VERSION="$(GRPC_GO_VERSION)"
5761
COMMON_ARGS += --build-arg=GRPC_GATEWAY_VERSION="$(GRPC_GATEWAY_VERSION)"
5862
COMMON_ARGS += --build-arg=VTPROTOBUF_VERSION="$(VTPROTOBUF_VERSION)"
5963
COMMON_ARGS += --build-arg=DEEPCOPY_VERSION="$(DEEPCOPY_VERSION)"
64+
COMMON_ARGS += --build-arg=GOLANGCILINT_VERSION="$(GOLANGCILINT_VERSION)"
65+
COMMON_ARGS += --build-arg=GOIMPORTS_VERSION="$(GOIMPORTS_VERSION)"
66+
COMMON_ARGS += --build-arg=GOFUMPT_VERSION="$(GOFUMPT_VERSION)"
6067
COMMON_ARGS += --build-arg=TESTPKGS="$(TESTPKGS)"
61-
TOOLCHAIN ?= docker.io/golang:1.20-alpine
68+
TOOLCHAIN ?= docker.io/golang:1.21-alpine
6269

6370
# extra variables
6471

@@ -130,7 +137,8 @@ lint-gofumpt: ## Runs gofumpt linter.
130137
.PHONY: fmt
131138
fmt: ## Formats the source code
132139
@docker run --rm -it -v $(PWD):/src -w /src golang:$(GO_VERSION) \
133-
bash -c "export GO111MODULE=on; export GOPROXY=https://proxy.golang.org; \
140+
bash -c "export GOEXPERIMENT=loopvar; export GOTOOLCHAIN=local; \
141+
export GO111MODULE=on; export GOPROXY=https://proxy.golang.org; \
134142
go install mvdan.cc/gofumpt@$(GOFUMPT_VERSION) && \
135143
gofumpt -w ."
136144

@@ -154,7 +162,7 @@ unit-tests-race: ## Performs unit tests with race detection enabled.
154162

155163
.PHONY: coverage
156164
coverage: ## Upload coverage data to codecov.io.
157-
bash -c "bash <(curl -s https://codecov.io/bash) -f $(ARTIFACTS)/coverage.txt -X fix"
165+
bash -c "bash <(curl -s https://codecov.io/bash) -f $(ARTIFACTS)/coverage-unit-tests.txt -X fix"
158166

159167
.PHONY: $(ARTIFACTS)/talos-backup-linux-amd64
160168
$(ARTIFACTS)/talos-backup-linux-amd64:

0 commit comments

Comments
 (0)