@@ -31,7 +31,10 @@ GO_GET = $(GO) get
31
31
GO_TEST = $(GO ) test
32
32
GO_LINT = $(GO_PATH ) /bin/golangci-lint
33
33
GO_LICENSER = $(GO_PATH ) /bin/go-licenser
34
- GO_PACKR = $(GO_PATH ) /bin/packr2
34
+ ARCH := $(shell uname)
35
+ OSNAME := $(if $(findstring Darwin,$(ARCH ) ) ,darwin,linux)
36
+ GOBINDATA_VERSION := v3.21.0
37
+ GO_BINDATA = $(GO_PATH ) /bin/go-bindata
35
38
GO_BUILD_FLAGS = -v
36
39
GO_BUILD_LDFLAGS = -X main.version=$(VERSION )
37
40
GQL_GEN = $(GO_PATH ) /bin/gqlgen
@@ -45,19 +48,33 @@ SHELL = /bin/bash
45
48
all : clean license deps codegen lint test build
46
49
47
50
tools :
48
- $(GO_PACKR ) -v || $(GO_GET ) -u github.com/gobuffalo/packr/v2/...
51
+ mkdir -p $(GO_PATH ) /bin
52
+ $(GO_BINDATA ) -v || curl --location --output $(GO_BINDATA ) https://github.com/kevinburke/go-bindata/releases/download/$(GOBINDATA_VERSION ) /go-bindata-$(OSNAME ) -amd64 \
53
+ && chmod +x $(GO_BINDATA )
49
54
$(GO_LINT ) version || curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(GO_PATH ) /bin v1.21.0
50
55
$(GO_LICENSER ) -version || GO111MODULE=off $(GO_GET ) -u github.com/elastic/go-licenser
51
56
$(GQL_GEN ) version || $(GO_GET ) -u github.com/99designs/gqlgen
52
57
53
58
deps : tools
54
59
$(GO_GET ) -v -t -d ./...
55
60
56
- codegen : clean tools
61
+ .PHONY : assets
62
+ assets : tools
63
+ cd assets \
64
+ && $(GO_BINDATA ) --nocompress --nometadata --pkg assets --ignore ' .*\.go' \
65
+ -o " assets.gen.go" ./... \
66
+ && ../hack/build-header.sh assets.gen.go \
67
+ && cd ..
68
+
69
+ gqlgen : tools
57
70
echo ' scalar Long' > query-protocol/schema.graphqls
58
71
$(GQL_GEN ) generate
59
72
-rm -rf generated.go
60
- cd assets && GO111MODULE=on $(GO_PACKR ) -v && cd ..
73
+ -hack/build-header.sh graphql/schema/schema.go
74
+ -rm query-protocol/schema.graphqls
75
+
76
+ codegen : clean assets gqlgen
77
+ @go mod tidy & > /dev/null
61
78
62
79
.PHONY : $(PLATFORMS )
63
80
$(PLATFORMS ) :
@@ -96,12 +113,10 @@ clean: tools
96
113
-rm -rf bin
97
114
-rm -rf coverage.txt
98
115
-rm -rf query-protocol/schema.graphqls
99
- -rm -rf graphql/schema/schema.go
100
116
-rm -rf * .tgz
101
117
-rm -rf * .tgz
102
118
-rm -rf * .asc
103
119
-rm -rf * .sha512
104
- cd assets && $(GO_PACKR ) clean
105
120
106
121
release-src : clean
107
122
-tar -zcvf $(RELEASE_SRC ) .tgz \
@@ -111,10 +126,7 @@ release-src: clean
111
126
--exclude .DS_Store \
112
127
--exclude .github \
113
128
--exclude $(RELEASE_SRC ) .tgz \
114
- --exclude graphql/schema/schema.go \
115
129
--exclude query-protocol/schema.graphqls \
116
- --exclude assets/packrd \
117
- --exclude assets/* -packr.go \
118
130
.
119
131
120
132
release-bin : build
@@ -131,3 +143,15 @@ release: verify release-src release-bin
131
143
shasum -a 512 $(RELEASE_SRC ) .tgz > $(RELEASE_SRC ) .tgz.sha512
132
144
gpg --batch --yes --armor --detach-sig $(RELEASE_BIN ) .tgz
133
145
shasum -a 512 $(RELEASE_BIN ) .tgz > $(RELEASE_BIN ) .tgz.sha512
146
+
147
+ # # Check that the status is consistent with CI.
148
+ check-codegen : codegen
149
+ $(MAKE ) clean
150
+ mkdir -p /tmp/swctl
151
+ @go mod tidy & > /dev/null
152
+ git diff > /tmp/swctl/check.diff 2>&1
153
+ @if [ ! -z " ` git status -s` " ]; then \
154
+ echo " Following files are not consistent with CI:" ; \
155
+ git status -s; \
156
+ exit 1; \
157
+ fi
0 commit comments