-
Notifications
You must be signed in to change notification settings - Fork 322
Expand file tree
/
Copy pathMakefile.binaries.mk
More file actions
252 lines (177 loc) · 10.7 KB
/
Copy pathMakefile.binaries.mk
File metadata and controls
252 lines (177 loc) · 10.7 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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
# Code generated by devtools/genmake, DO NOT EDIT.
.PHONY: $(BIN_DIR)/darwin-amd64/_all $(BIN_DIR)/linux-amd64/_all $(BIN_DIR)/linux-arm/_all $(BIN_DIR)/linux-arm64/_all $(BIN_DIR)/windows-amd64/_all
.PHONY: container-goalert-amd64 container-demo-amd64 container-goalert-arm container-demo-arm container-goalert-arm64 container-demo-arm64 container-goalert container-demo container-goalert-manifest container-demo-manifest
BIN_DIR=bin
GO_DEPS := Makefile.binaries.mk $(shell find . -path ./web/src -prune -o -path ./vendor -prune -o -path ./.git -prune -o -type f -name "*.go" -print) go.sum
GO_DEPS += migrate/migrations/ migrate/migrations/*.sql web/index.html graphql2/graphqlapp/slack.manifest.yaml swo/*/*.sql
GO_DEPS += graphql2/mapconfig.go graphql2/maplimit.go graphql2/generated.go graphql2/models_gen.go
GO_DEPS += web/explore.html web/live.js .gitrev
ifdef BUNDLE
GO_DEPS += web/src/build/static/app.js web/src/build/static/explore.js
endif
GIT_COMMIT:=$(shell git rev-parse HEAD || echo '?')
GIT_TREE:=$(shell git diff-index --quiet HEAD -- && echo clean || echo dirty)
GIT_VERSION:=$(shell git describe --tags --dirty --match 'v*' || echo dev)
BUILD_DATE:=$(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
BUILD_FLAGS=
# update .gitrev with GIT_VERSION (unless it matches the current value)
ifneq ($(shell cat .gitrev 2>/dev/null),$(GIT_VERSION))
$(shell echo "$(GIT_VERSION)" > .gitrev)
endif
.gitrev:
@echo "$(GIT_VERSION)" > .gitrev
export ZONEINFO:=$(shell go env GOROOT)/lib/time/zoneinfo.zip
LD_FLAGS+=-X github.com/target/goalert/version.gitCommit=$(GIT_COMMIT)
LD_FLAGS+=-X github.com/target/goalert/version.gitVersion=$(GIT_VERSION)
LD_FLAGS+=-X github.com/target/goalert/version.gitTreeState=$(GIT_TREE)
LD_FLAGS+=-X github.com/target/goalert/version.buildDate=$(BUILD_DATE)
IMAGE_REPO=docker.io/goalert
IMAGE_TAG=$(GIT_VERSION)
PUSH:=0
PUSH_ARG=
ifeq ($(PUSH),1)
PUSH_ARG=--push
endif
PREBUILT:=.prebuilt
container-goalert: bin/goalert-linux-amd64.tgz bin/goalert-linux-arm.tgz bin/goalert-linux-arm64.tgz
docker buildx build --platform linux/amd64,linux/arm64,linux/arm -t $(IMAGE_REPO)/goalert:$(IMAGE_TAG) -f devtools/ci/dockerfiles/goalert/Dockerfile$(PREBUILT) $(PUSH_ARG) .
container-demo: bin/goalert-linux-amd64.tgz bin/linux-amd64/resetdb bin/goalert-linux-arm.tgz bin/linux-arm/resetdb bin/goalert-linux-arm64.tgz bin/linux-arm64/resetdb
docker buildx build --platform linux/amd64,linux/arm64,linux/arm -t $(IMAGE_REPO)/demo:$(IMAGE_TAG) -f devtools/ci/dockerfiles/demo/Dockerfile$(PREBUILT) $(PUSH_ARG) .
$(BIN_DIR)/build/integration/cypress/plugins/index.js: package.json bun.lock web/src/esbuild.cypress.js $(shell find ./web/src/cypress)
rm -rf $@
$(BIN_DIR)/tools/bun run esbuild-cy
mkdir -p $@/plugins
cp web/src/cypress/plugins/index.js $@/plugins/index.js
touch $@
$(BIN_DIR)/build/integration/bin/build/goalert-darwin-amd64: $(BIN_DIR)/build/goalert-darwin-amd64
rm -rf $@
mkdir -p $@
cp -r $(BIN_DIR)/build/goalert-darwin-amd64/goalert $@/
touch $@
$(BIN_DIR)/build/integration/bin/build/goalert-linux-amd64: $(BIN_DIR)/build/goalert-linux-amd64
rm -rf $@
mkdir -p $@
cp -r $(BIN_DIR)/build/goalert-linux-amd64/goalert $@/
touch $@
$(BIN_DIR)/build/integration/bin/build/goalert-linux-arm: $(BIN_DIR)/build/goalert-linux-arm
rm -rf $@
mkdir -p $@
cp -r $(BIN_DIR)/build/goalert-linux-arm/goalert $@/
touch $@
$(BIN_DIR)/build/integration/bin/build/goalert-linux-arm64: $(BIN_DIR)/build/goalert-linux-arm64
rm -rf $@
mkdir -p $@
cp -r $(BIN_DIR)/build/goalert-linux-arm64/goalert $@/
touch $@
$(BIN_DIR)/build/integration/bin/build/goalert-windows-amd64: $(BIN_DIR)/build/goalert-windows-amd64
rm -rf $@
mkdir -p $@
cp -r $(BIN_DIR)/build/goalert-windows-amd64/goalert $@/
touch $@
$(BIN_DIR)/build/integration/devtools: $(shell find ./devtools/ci)
rm -rf $@
mkdir -p $@
cp -r devtools/ci $@/
touch $@
$(BIN_DIR)/build/integration/.git: $(shell find ./.git)
rm -rf $@
mkdir -p $@
test -d .git/resource && cp -r .git/resource $@/ || true
touch $@
$(BIN_DIR)/build/integration/COMMIT: $(BIN_DIR)/build/integration/.git
git rev-parse HEAD >$@
$(BIN_DIR)/build/integration: $(BIN_DIR)/build/integration/.git $(BIN_DIR)/build/integration/COMMIT $(BIN_DIR)/build/integration/devtools $(BIN_DIR)/build/integration/cypress $(BIN_DIR)/build/integration/bin/build/goalert-darwin-amd64 $(BIN_DIR)/build/integration/bin/build/goalert-linux-amd64 $(BIN_DIR)/build/integration/bin/build/goalert-linux-arm $(BIN_DIR)/build/integration/bin/build/goalert-linux-arm64 $(BIN_DIR)/build/integration/bin/build/goalert-windows-amd64
touch $@
$(BIN_DIR)/goalert.cover: $(GO_DEPS) graphql2/mapconfig.go
go build -ldflags "$(LD_FLAGS)" -cover -coverpkg=./... -o $@ ./cmd/goalert
$(BIN_DIR)/goalert: $(GO_DEPS) graphql2/mapconfig.go
go build -ldflags "$(LD_FLAGS)" -o $@ ./cmd/goalert
$(BIN_DIR)/darwin-amd64/goalert: $(GO_DEPS) graphql2/mapconfig.go web/src/build/static/app.js
GOOS=darwin GOARCH=amd64 go build -trimpath -ldflags "$(LD_FLAGS)" -o $@ ./cmd/goalert
$(BIN_DIR)/linux-amd64/goalert: $(GO_DEPS) graphql2/mapconfig.go web/src/build/static/app.js
GOOS=linux GOARCH=amd64 go build -trimpath -ldflags "$(LD_FLAGS)" -o $@ ./cmd/goalert
$(BIN_DIR)/linux-arm/goalert: $(GO_DEPS) graphql2/mapconfig.go web/src/build/static/app.js
GOOS=linux GOARCH=arm GOARM=7 go build -trimpath -ldflags "$(LD_FLAGS)" -o $@ ./cmd/goalert
$(BIN_DIR)/linux-arm64/goalert: $(GO_DEPS) graphql2/mapconfig.go web/src/build/static/app.js
GOOS=linux GOARCH=arm64 go build -trimpath -ldflags "$(LD_FLAGS)" -o $@ ./cmd/goalert
$(BIN_DIR)/windows-amd64/goalert.exe: $(GO_DEPS) graphql2/mapconfig.go web/src/build/static/app.js
GOOS=windows GOARCH=amd64 go build -trimpath -ldflags "$(LD_FLAGS)" -o $@ ./cmd/goalert
$(BIN_DIR)/goalert-slack-email-sync: $(GO_DEPS)
go build -o $@ ./cmd/goalert-slack-email-sync
$(BIN_DIR)/darwin-amd64/goalert-slack-email-sync: $(GO_DEPS)
GOOS=darwin GOARCH=amd64 go build -trimpath -o $@ ./cmd/goalert-slack-email-sync
$(BIN_DIR)/linux-amd64/goalert-slack-email-sync: $(GO_DEPS)
GOOS=linux GOARCH=amd64 go build -trimpath -o $@ ./cmd/goalert-slack-email-sync
$(BIN_DIR)/linux-arm/goalert-slack-email-sync: $(GO_DEPS)
GOOS=linux GOARCH=arm GOARM=7 go build -trimpath -o $@ ./cmd/goalert-slack-email-sync
$(BIN_DIR)/linux-arm64/goalert-slack-email-sync: $(GO_DEPS)
GOOS=linux GOARCH=arm64 go build -trimpath -o $@ ./cmd/goalert-slack-email-sync
$(BIN_DIR)/windows-amd64/goalert-slack-email-sync.exe: $(GO_DEPS)
GOOS=windows GOARCH=amd64 go build -trimpath -o $@ ./cmd/goalert-slack-email-sync
$(BIN_DIR)/darwin-amd64/_all: $(BIN_DIR)/darwin-amd64/goalert-smoketest $(BIN_DIR)/darwin-amd64/goalert $(BIN_DIR)/darwin-amd64/goalert-slack-email-sync
$(BIN_DIR)/darwin-amd64/goalert-smoketest: $(GO_DEPS)
GOOS=darwin GOARCH=amd64 go test ./smoketest -c -o $@
$(BIN_DIR)/linux-amd64/_all: $(BIN_DIR)/linux-amd64/goalert-smoketest $(BIN_DIR)/linux-amd64/goalert $(BIN_DIR)/linux-amd64/goalert-slack-email-sync
$(BIN_DIR)/linux-amd64/goalert-smoketest: $(GO_DEPS)
GOOS=linux GOARCH=amd64 go test ./smoketest -c -o $@
$(BIN_DIR)/linux-arm/_all: $(BIN_DIR)/linux-arm/goalert-smoketest $(BIN_DIR)/linux-arm/goalert $(BIN_DIR)/linux-arm/goalert-slack-email-sync
$(BIN_DIR)/linux-arm/goalert-smoketest: $(GO_DEPS)
GOOS=linux GOARCH=arm GOARM=7 go test ./smoketest -c -o $@
$(BIN_DIR)/linux-arm64/_all: $(BIN_DIR)/linux-arm64/goalert-smoketest $(BIN_DIR)/linux-arm64/goalert $(BIN_DIR)/linux-arm64/goalert-slack-email-sync
$(BIN_DIR)/linux-arm64/goalert-smoketest: $(GO_DEPS)
GOOS=linux GOARCH=arm64 go test ./smoketest -c -o $@
$(BIN_DIR)/windows-amd64/_all: $(BIN_DIR)/windows-amd64/goalert-smoketest $(BIN_DIR)/windows-amd64/goalert.exe $(BIN_DIR)/windows-amd64/goalert-slack-email-sync.exe
$(BIN_DIR)/windows-amd64/goalert-smoketest: $(GO_DEPS)
GOOS=windows GOARCH=amd64 go test ./smoketest -c -o $@
$(BIN_DIR)/goalert-smoketest: $(GO_DEPS)
go test ./smoketest -c -o $@
$(BIN_DIR)/build/goalert-darwin-amd64: $(BIN_DIR)/darwin-amd64/goalert $(BIN_DIR)/darwin-amd64/goalert-slack-email-sync
rm -rf $@
mkdir -p $@/goalert/bin/
cp $(BIN_DIR)/darwin-amd64/goalert $(BIN_DIR)/darwin-amd64/goalert-slack-email-sync $@/goalert/bin/
touch $@
$(BIN_DIR)/goalert-darwin-amd64.tgz: $(BIN_DIR)/build/goalert-darwin-amd64
tar -czvf $(BIN_DIR)/goalert-darwin-amd64.tgz -C $(BIN_DIR)/build/goalert-darwin-amd64/ .
$(BIN_DIR)/goalert-darwin-amd64.zip: $(BIN_DIR)/build/goalert-darwin-amd64
rm -f $@
cd $(BIN_DIR)/build/goalert-darwin-amd64 && zip -r $(abspath $@) .
$(BIN_DIR)/build/goalert-linux-amd64: $(BIN_DIR)/linux-amd64/goalert $(BIN_DIR)/linux-amd64/goalert-slack-email-sync
rm -rf $@
mkdir -p $@/goalert/bin/
cp $(BIN_DIR)/linux-amd64/goalert $(BIN_DIR)/linux-amd64/goalert-slack-email-sync $@/goalert/bin/
touch $@
$(BIN_DIR)/goalert-linux-amd64.tgz: $(BIN_DIR)/build/goalert-linux-amd64
tar -czvf $(BIN_DIR)/goalert-linux-amd64.tgz -C $(BIN_DIR)/build/goalert-linux-amd64/ .
$(BIN_DIR)/goalert-linux-amd64.zip: $(BIN_DIR)/build/goalert-linux-amd64
rm -f $@
cd $(BIN_DIR)/build/goalert-linux-amd64 && zip -r $(abspath $@) .
$(BIN_DIR)/build/goalert-linux-arm: $(BIN_DIR)/linux-arm/goalert $(BIN_DIR)/linux-arm/goalert-slack-email-sync
rm -rf $@
mkdir -p $@/goalert/bin/
cp $(BIN_DIR)/linux-arm/goalert $(BIN_DIR)/linux-arm/goalert-slack-email-sync $@/goalert/bin/
touch $@
$(BIN_DIR)/goalert-linux-arm.tgz: $(BIN_DIR)/build/goalert-linux-arm
tar -czvf $(BIN_DIR)/goalert-linux-arm.tgz -C $(BIN_DIR)/build/goalert-linux-arm/ .
$(BIN_DIR)/goalert-linux-arm.zip: $(BIN_DIR)/build/goalert-linux-arm
rm -f $@
cd $(BIN_DIR)/build/goalert-linux-arm && zip -r $(abspath $@) .
$(BIN_DIR)/build/goalert-linux-arm64: $(BIN_DIR)/linux-arm64/goalert $(BIN_DIR)/linux-arm64/goalert-slack-email-sync
rm -rf $@
mkdir -p $@/goalert/bin/
cp $(BIN_DIR)/linux-arm64/goalert $(BIN_DIR)/linux-arm64/goalert-slack-email-sync $@/goalert/bin/
touch $@
$(BIN_DIR)/goalert-linux-arm64.tgz: $(BIN_DIR)/build/goalert-linux-arm64
tar -czvf $(BIN_DIR)/goalert-linux-arm64.tgz -C $(BIN_DIR)/build/goalert-linux-arm64/ .
$(BIN_DIR)/goalert-linux-arm64.zip: $(BIN_DIR)/build/goalert-linux-arm64
rm -f $@
cd $(BIN_DIR)/build/goalert-linux-arm64 && zip -r $(abspath $@) .
$(BIN_DIR)/build/goalert-windows-amd64: $(BIN_DIR)/windows-amd64/goalert.exe $(BIN_DIR)/windows-amd64/goalert-slack-email-sync.exe
rm -rf $@
mkdir -p $@/goalert/bin/
cp $(BIN_DIR)/windows-amd64/goalert.exe $(BIN_DIR)/windows-amd64/goalert-slack-email-sync.exe $@/goalert/bin/
touch $@
$(BIN_DIR)/goalert-windows-amd64.tgz: $(BIN_DIR)/build/goalert-windows-amd64
tar -czvf $(BIN_DIR)/goalert-windows-amd64.tgz -C $(BIN_DIR)/build/goalert-windows-amd64/ .
$(BIN_DIR)/goalert-windows-amd64.zip: $(BIN_DIR)/build/goalert-windows-amd64
rm -f $@
cd $(BIN_DIR)/build/goalert-windows-amd64 && zip -r $(abspath $@) .