-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathEarthfile
More file actions
125 lines (82 loc) · 2.29 KB
/
Copy pathEarthfile
File metadata and controls
125 lines (82 loc) · 2.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
VERSION 0.8
deps:
FROM golang:1.25-bookworm
WORKDIR /workspace
RUN dpkg --add-architecture i386 && \
apt-get update && \
apt-get install -y g++-multilib git && \
rm -rf /var/lib/apt/lists/*
COPY go.mod go.sum ./
RUN go mod download
RUN go mod verify
quality-deps:
FROM golang:1.25-bookworm
WORKDIR /workspace
RUN dpkg --add-architecture i386 && \
apt-get update && \
apt-get install -y g++-multilib git && \
rm -rf /var/lib/apt/lists/*
COPY go.mod go.sum ./
COPY .golangci.yml ./
RUN go mod download
RUN GOBIN=/usr/local/bin go install tool
quality-src:
FROM +quality-deps
COPY --dir src ./
COPY .git ./.git
quality-vet:
FROM +quality-src
RUN go vet ./...
quality-lint:
FROM +quality-src
ARG LINT_FLAGS=""
RUN sh -eu -c 'golangci-lint run ${LINT_FLAGS}'
quality-staticcheck:
FROM +quality-src
RUN staticcheck ./...
quality-vuln:
FROM +quality-src
RUN govulncheck ./...
quality:
BUILD +quality-vet
BUILD +quality-lint
quality-full:
BUILD +quality
BUILD +quality-staticcheck
BUILD +quality-vuln
src:
FROM +deps
COPY --dir src ./
COPY --dir scripts ./
COPY Taskfile.yml ./
test:
FROM +src
RUN go test -race -v -timeout=10m ./...
build:
FROM +src
ARG VERSION=$(git describe --tags --dirty --always 2>/dev/null || echo "dev")
RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags "-X main.version=${VERSION}" -o sampctl ./src
SAVE ARTIFACT sampctl /sampctl
build-windows:
FROM +src
ARG VERSION=$(git describe --tags --dirty --always 2>/dev/null || echo "dev")
RUN CGO_ENABLED=0 GOOS=windows go build -a -ldflags "-X main.version=${VERSION}" -o sampctl.exe ./src
SAVE ARTIFACT sampctl.exe /sampctl.exe
build-all:
BUILD +build
BUILD +build-windows
release:
FROM +build
COPY +build/sampctl ./sampctl
RUN chmod +x ./sampctl
SAVE ARTIFACT sampctl AS LOCAL ./sampctl
release-windows:
FROM +build-windows
COPY +build-windows/sampctl.exe ./sampctl.exe
SAVE ARTIFACT sampctl.exe AS LOCAL ./sampctl.exe
release-all:
BUILD +release
BUILD +release-windows
all:
BUILD +test
BUILD +build