@@ -10,11 +10,13 @@ VERSION_MAJOR_MINOR := $(shell echo $(VERSION_MAJOR_MINOR_PATCH) | cut -f 1,2 -d
10
10
VERSION_MAJOR := $(shell echo $(VERSION_MAJOR_MINOR ) | cut -f 1 -d '.')
11
11
COMMIT := $(shell git rev-parse --short HEAD)
12
12
DOCKERCLI := $(shell which docker)
13
+ RELEASE_MODE ?= community
13
14
14
15
GOBUILDDIR := $(SCRIPTDIR ) /.gobuild
15
16
SRCDIR := $(SCRIPTDIR )
16
17
CACHEVOL := $(PROJECT ) -gocache
17
18
BINDIR := $(ROOTDIR ) /bin
19
+ VBINDIR := $(BINDIR ) /$(RELEASE_MODE )
18
20
VENDORDIR := $(ROOTDIR ) /deps
19
21
DASHBOARDDIR := $(ROOTDIR ) /dashboard
20
22
@@ -30,6 +32,8 @@ GOVERSION := 1.10.0-alpine
30
32
PULSAR := $(GOBUILDDIR ) /bin/pulsar$(shell go env GOEXE)
31
33
GOASSETSBUILDER := $(GOBUILDDIR ) /bin/go-assets-builder$(shell go env GOEXE)
32
34
35
+ BUILDTIME = $(shell go run "$(ROOT ) /tools/dategen/")
36
+
33
37
DOCKERFILE := Dockerfile
34
38
35
39
HELM ?= $(shell which helm)
46
50
47
51
HELM_PACKAGE_CMD = $(HELM ) package "$(ROOTDIR ) /chart/$(CHART_NAME ) " \
48
52
-d "$(ROOTDIR ) /bin/charts" \
49
- --save=false
53
+ --save=false --version " $( VERSION_MAJOR_MINOR_PATCH ) "
50
54
51
55
HELM_CMD = $(HELM ) template "$(ROOTDIR ) /chart/$(CHART_NAME ) " \
52
56
--name "$(NAME ) " \
@@ -91,13 +95,15 @@ ifndef DEPLOYMENTNAMESPACE
91
95
DEPLOYMENTNAMESPACE := default
92
96
endif
93
97
94
- BASEUBIIMAGE ?= registry.access.redhat.com/ubi8/ubi-minimal:8.0
98
+ BASEUBIIMAGE ?= registry.access.redhat.com/ubi8/ubi-minimal:8.4
99
+
100
+ OPERATORIMAGENAME ?= $(REPONAME )
95
101
96
102
ifndef OPERATORIMAGE
97
- OPERATORIMAGE := $(DOCKERNAMESPACE)/kube-arangodb $(IMAGESUFFIX)
103
+ OPERATORIMAGE := $(DOCKERNAMESPACE)/$(OPERATORIMAGENAME) $(IMAGESUFFIX)
98
104
endif
99
105
ifndef OPERATORUBIIMAGE
100
- OPERATORUBIIMAGE := $(DOCKERNAMESPACE)/kube-arangodb $(IMAGESUFFIX)-ubi
106
+ OPERATORUBIIMAGE := $(DOCKERNAMESPACE)/$(OPERATORIMAGENAME) $(IMAGESUFFIX)-ubi
101
107
endif
102
108
ifndef ENTERPRISEIMAGE
103
109
ENTERPRISEIMAGE := $(DEFAULTENTERPRISEIMAGE)
@@ -113,17 +119,23 @@ endif
113
119
114
120
BINNAME := $(PROJECT )
115
121
BIN := $(BINDIR ) /$(BINNAME )
116
- RELEASE := $(GOBUILDDIR ) /bin/release
117
- GHRELEASE := $(GOBUILDDIR ) /bin/github-release
122
+ VBIN := $(BINDIR ) /$(RELEASE_MODE ) /$(BINNAME )
118
123
119
124
ifdef VERBOSE
120
125
TESTVERBOSEOPTIONS := -v
121
126
endif
122
127
123
128
EXCLUDE_DIRS := tests vendor .gobuild deps tools
124
- SOURCES_QUERY := find $( SRCDIR ) -name '*.go' -type f -not -path ' $( SRCDIR ) /tests/*' -not -path ' $( SRCDIR ) /vendor/*' -not -path ' $( SRCDIR ) /.gobuild/*' -not -path ' $( SRCDIR ) /deps/*' -not -path ' $( SRCDIR ) /tools/*'
129
+ SOURCES_QUERY := find ./ -type f -name '*.go' $( foreach EXCLUDE_DIR, $( EXCLUDE_DIRS ) , ! -path "./ $( EXCLUDE_DIR ) / * ")
125
130
SOURCES := $(shell $(SOURCES_QUERY ) )
126
- DASHBOARDSOURCES := $(shell find $(DASHBOARDDIR ) /src -name '* .js' -not -path './test/* ') $(DASHBOARDDIR ) /package.json
131
+ DASHBOARDSOURCES := $(shell find $(DASHBOARDDIR ) /src -name '* .js') $(DASHBOARDDIR ) /package.json
132
+ LINT_EXCLUDES: =
133
+ ifeq ($(RELEASE_MODE ) ,enterprise)
134
+ LINT_EXCLUDES+ =.*\.community\.go$$
135
+ else
136
+ LINT_EXCLUDES+ =.*\.enterprise\.go$$
137
+ endif
138
+
127
139
128
140
.DEFAULT_GOAL := all
129
141
.PHONY : all
@@ -166,9 +178,11 @@ fmt-verify: license-verify
166
178
167
179
.PHONY : linter
168
180
linter :
169
- $(GOPATH ) /bin/golangci-lint run --no-config --issues-exit-code=1 --deadline=30m --exclude-use-default=false \
181
+ $(GOPATH ) /bin/golangci-lint run --build-tags " $( RELEASE_MODE ) " -- no-config --issues-exit-code=1 --deadline=30m --exclude-use-default=false \
170
182
--disable-all $(foreach EXCLUDE_DIR,$(EXCLUDE_DIRS ) ,--skip-dirs $(EXCLUDE_DIR ) ) \
171
- $(foreach MODE,$(GOLANGCI_ENABLED ) ,--enable $(MODE ) ) ./...
183
+ $(foreach MODE,$(GOLANGCI_ENABLED ) ,--enable $(MODE ) ) \
184
+ $(foreach LINT_EXCLUDE,$(LINT_EXCLUDES ) ,--exclude '$(LINT_EXCLUDE ) ') \
185
+ ./...
172
186
173
187
.PHONY : build
174
188
build : docker manifests
@@ -220,7 +234,7 @@ update-generated:
220
234
verify-generated :
221
235
@${MAKE} -B -s VERIFYARGS=--verify-only update-generated
222
236
223
- dashboard/assets.go : $( DASHBOARDSOURCES ) $( DASHBOARDDIR ) /Dockerfile.build
237
+ dashboard/assets.go :
224
238
cd $(DASHBOARDDIR ) && docker build -t $(DASHBOARDBUILDIMAGE ) -f Dockerfile.build $(DASHBOARDDIR )
225
239
@mkdir -p $(DASHBOARDDIR ) /build
226
240
docker run --rm \
@@ -234,9 +248,12 @@ dashboard/assets.go: $(DASHBOARDSOURCES) $(DASHBOARDDIR)/Dockerfile.build
234
248
.PHONY : bin
235
249
bin : $(BIN )
236
250
237
- $(BIN ) : $(SOURCES ) dashboard/assets.go VERSION
238
- @mkdir -p $(BINDIR )
239
- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -installsuffix netgo -ldflags " -X main.projectVersion=$( VERSION) -X main.projectBuild=$( COMMIT) " -o $(BIN ) $(REPOPATH )
251
+ $(VBIN ) : $(SOURCES ) dashboard/assets.go VERSION
252
+ @mkdir -p $(VBINDIR )
253
+ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build --tags " $( RELEASE_MODE) " -installsuffix netgo -ldflags " -X $( REPOPATH) /pkg/version.version=$( VERSION) -X $( REPOPATH) /pkg/version.buildDate=$( BUILDTIME) -X $( REPOPATH) /pkg/version.build=$( COMMIT) " -o $(VBIN ) $(REPOPATH )
254
+
255
+ $(BIN ) : $(VBIN )
256
+ @cp " $( VBIN) " " $( BIN) "
240
257
241
258
.PHONY : docker
242
259
docker : check-vars $(BIN )
@@ -331,7 +348,7 @@ manifests: chart-operator
331
348
332
349
.PHONY : run-unit-tests
333
350
run-unit-tests : $(SOURCES )
334
- go test --count=1 $(TESTVERBOSEOPTIONS ) \
351
+ go test --count=1 --tags " $( RELEASE_MODE ) " $(TESTVERBOSEOPTIONS ) \
335
352
$(REPOPATH ) /pkg/apis/backup/... \
336
353
$(REPOPATH ) /pkg/apis/deployment/... \
337
354
$(REPOPATH ) /pkg/apis/replication/... \
@@ -361,45 +378,6 @@ patch-release: patch-readme patch-examples
361
378
patch-chart :
362
379
$(ROOTDIR ) /scripts/patch_chart.sh " $( VERSION_MAJOR_MINOR_PATCH) " " $( OPERATORIMAGE) "
363
380
364
- .PHONY : docker-push
365
- docker-push : docker
366
- ifneq ($(DOCKERNAMESPACE ) , arangodb)
367
- docker tag $(OPERATORIMAGE) $(DOCKERNAMESPACE)/arangodb-operator
368
- endif
369
- docker push $(DOCKERNAMESPACE)/arangodb-operator
370
-
371
- .PHONY : docker-push-version
372
- docker-push-version : docker
373
- docker tag arangodb/arangodb-operator arangodb/arangodb-operator:$(VERSION )
374
- docker tag arangodb/arangodb-operator arangodb/arangodb-operator:$(VERSION_MAJOR_MINOR )
375
- docker tag arangodb/arangodb-operator arangodb/arangodb-operator:$(VERSION_MAJOR )
376
- docker tag arangodb/arangodb-operator arangodb/arangodb-operator:latest
377
- docker push arangodb/arangodb-operator:$(VERSION )
378
- docker push arangodb/arangodb-operator:$(VERSION_MAJOR_MINOR )
379
- docker push arangodb/arangodb-operator:$(VERSION_MAJOR )
380
- docker push arangodb/arangodb-operator:latest
381
-
382
- $(RELEASE ) : $(GOBUILDDIR ) $(SOURCES ) $(GHRELEASE )
383
- GOPATH=$(GOBUILDDIR ) go build -o $(RELEASE ) $(REPOPATH ) /tools/release
384
-
385
- .PHONY : build-ghrelease
386
- build-ghrelease : $(GHRELEASE )
387
-
388
- $(GHRELEASE ) : $(GOBUILDDIR )
389
- GOPATH=$(GOBUILDDIR ) go build -o $(GHRELEASE ) github.com/aktau/github-release
390
-
391
- .PHONY : release-patch
392
- release-patch : $(RELEASE )
393
- GOPATH=$(GOBUILDDIR ) $(RELEASE ) -type=patch
394
-
395
- .PHONY : release-minor
396
- release-minor : $(RELEASE )
397
- GOPATH=$(GOBUILDDIR ) $(RELEASE ) -type=minor
398
-
399
- .PHONY : release-major
400
- release-major : $(RELEASE )
401
- GOPATH=$(GOBUILDDIR ) $(RELEASE ) -type=major
402
-
403
381
.PHONY : tidy
404
382
tidy :
405
383
@go mod tidy
@@ -408,7 +386,7 @@ tidy:
408
386
deps-reload : tidy init
409
387
410
388
.PHONY : init
411
- init : tools update-generated $(GHRELEASE ) $( RELEASE ) $( BIN ) vendor
389
+ init : tools update-generated $(BIN ) vendor
412
390
413
391
.PHONY : tools
414
392
tools : update-vendor
0 commit comments