-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
111 lines (81 loc) · 2.96 KB
/
Makefile
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
# kernel-style V=1 build verbosity
ifeq ("$(origin V)", "command line")
BUILD_VERBOSE = $(V)
endif
ifeq ($(BUILD_VERBOSE),1)
Q =
else
Q = @
endif
VERSION = $(shell git describe --dirty --tags --always)
GIT_COMMIT = $(shell git rev-parse HEAD)
REPO = github.com/redhat-nfvpe/helm2go-operator-sdk
BUILD_PATH = $(REPO)
PKGS = $(shell go list ./... | grep -v /vendor/)
SOURCES = $(shell find . -name '*.go' -not -path "*/vendor/*")
export RELEASE_VERSION=v0.13.0
dependency:
$(Q)wget https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu
$(Q)chmod +x operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu
$(Q)sudo cp operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu /usr/local/bin/operator-sdk
$(Q)rm operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu
$(Q)wget https://storage.googleapis.com/kubernetes-helm/helm-v2.10.0-linux-amd64.tar.gz
$(Q)tar -xvzf helm-v2.10.0-linux-amd64.tar.gz
$(Q)sudo mv linux-amd64/helm /usr/local/bin/helm
$(Q)rm helm-v2.10.0-linux-amd64.tar.gz
helm init --client-only
export CGO_ENABLED:=0
export GO111MODULE:=on
export GOPROXY?=https://proxy.golang.org/
all: format test build/helm2go-operator-sdk
format:
$(Q)go fmt $(PKGS)
tidy:
$(Q)go mod tidy -v
clean:
$(Q)rm -rf build
.PHONY: all test format tidy clean
install:
$(Q)go install \
-gcflags "all=-trimpath=${GOPATH}" \
-asmflags "all=-trimpath=${GOPATH}" \
-ldflags " \
-X '${REPO}/version.GitVersion=${VERSION}' \
-X '${REPO}/version.GitCommit=${GIT_COMMIT}' \
" \
$(BUILD_PATH)
ci-build: build/helm2go-operator-sdk-$(VERSION)-x86_64-linux-gnu ci-install
ci-install:
mv build/helm2go-operator-sdk-$(VERSION)-x86_64-linux-gnu build/helm2go-operator-sdk
release_x86_64 := \
build/helm2go-operator-sdk-$(VERSION)-x86_64-linux-gnu \
build/helm2go-operator-sdk-$(VERSION)-x86_64-apple-darwin
release: clean $(release_x86_64) $(release_x86_64:=.asc)
build/helm2go-operator-sdk-%-x86_64-linux-gnu: GOARGS = GOOS=linux GOARCH=amd64
build/helm2go-operator-sdk-%-x86_64-apple-darwin: GOARGS = GOOS=darwin GOARCH=amd64
build/%: $(SOURCES)
$(Q)$(GOARGS) go build \
-gcflags "all=-trimpath=${GOPATH}" \
-asmflags "all=-trimpath=${GOPATH}" \
-ldflags " \
-X '${REPO}/version.GitVersion=${VERSION}' \
-X '${REPO}/version.GitCommit=${GIT_COMMIT}' \
" \
-o $@ $(BUILD_PATH)
build/%.asc:
$(Q){ \
default_key=$$(gpgconf --list-options gpg | awk -F: '$$1 == "default-key" { gsub(/"/,""); print toupper($$10)}'); \
git_key=$$(git config --get user.signingkey | awk '{ print toupper($$0) }'); \
if [ "$${default_key}" = "$${git_key}" ]; then \
gpg --output $@ --detach-sig build/$*; \
gpg --verify $@ build/$*; \
else \
echo "git and/or gpg are not configured to have default signing key $${default_key}"; \
exit 1; \
fi; \
}
.PHONY: install release_x86_64 release
test: test/unit
test/unit:
$(Q)go test -count=1 -short ./cmd/...
$(Q)go test -count=1 -short ./internal/...