github.com/koderover/helm@v2.17.0+incompatible/Makefile (about) 1 DOCKER_REGISTRY ?= ghcr.io 2 IMAGE_PREFIX ?= helm 3 DEV_IMAGE ?= golang:1.14 4 SHORT_NAME ?= tiller 5 SHORT_NAME_RUDDER ?= rudder 6 TARGETS ?= darwin/amd64 linux/amd64 linux/386 linux/arm linux/arm64 linux/ppc64le linux/s390x windows/amd64 7 TARGET_OBJS ?= darwin-amd64.tar.gz darwin-amd64.tar.gz.sha256 linux-amd64.tar.gz linux-amd64.tar.gz.sha256 linux-386.tar.gz linux-386.tar.gz.sha256 linux-arm.tar.gz linux-arm.tar.gz.sha256 linux-arm64.tar.gz linux-arm64.tar.gz.sha256 linux-ppc64le.tar.gz linux-ppc64le.tar.gz.sha256 linux-s390x.tar.gz linux-s390x.tar.gz.sha256 windows-amd64.zip windows-amd64.zip.sha256 8 DIST_DIRS = find * -type d -exec 9 10 # go option 11 GO ?= GO111MODULE=off go 12 PKG := $(shell glide novendor) 13 TAGS := 14 TESTS := . 15 TESTFLAGS := 16 LDFLAGS := -w -s 17 GOFLAGS := 18 BINDIR := $(CURDIR)/bin 19 BINARIES := helm tiller 20 21 # Required for globs to work correctly 22 SHELL=/usr/bin/env bash 23 24 .PHONY: all 25 all: build 26 27 .PHONY: build 28 build: 29 GOBIN=$(BINDIR) $(GO) install $(GOFLAGS) -tags '$(TAGS)' -ldflags '$(LDFLAGS)' k8s.io/helm/cmd/... 30 31 # usage: make clean build-cross dist VERSION=v2.0.0-alpha.3 32 .PHONY: build-cross 33 build-cross: LDFLAGS += -extldflags "-static" 34 build-cross: 35 CGO_ENABLED=0 gox -parallel=3 -output="_dist/{{.OS}}-{{.Arch}}/{{.Dir}}" -osarch='$(TARGETS)' $(GOFLAGS) $(if $(TAGS),-tags '$(TAGS)',) -ldflags '$(LDFLAGS)' k8s.io/helm/cmd/helm 36 CGO_ENABLED=0 gox -parallel=3 -output="_dist/{{.OS}}-{{.Arch}}/{{.Dir}}" -osarch='$(TARGETS)' $(GOFLAGS) $(if $(TAGS),-tags '$(TAGS)',) -ldflags '$(LDFLAGS)' k8s.io/helm/cmd/tiller 37 38 .PHONY: dist 39 dist: 40 ( \ 41 cd _dist && \ 42 $(DIST_DIRS) cp ../LICENSE {} \; && \ 43 $(DIST_DIRS) cp ../README.md {} \; && \ 44 $(DIST_DIRS) tar -zcf helm-${VERSION}-{}.tar.gz {} \; && \ 45 $(DIST_DIRS) zip -r helm-${VERSION}-{}.zip {} \; \ 46 ) 47 48 .PHONY: fetch-dist 49 fetch-dist: 50 mkdir -p _dist 51 cd _dist && \ 52 for obj in ${TARGET_OBJS} ; do \ 53 curl -sSL -o helm-${VERSION}-$${obj} https://get.helm.sh/helm-${VERSION}-$${obj} ; \ 54 done 55 56 .PHONY: sign 57 sign: 58 for f in _dist/*.{gz,zip,sha256} ; do \ 59 gpg --armor --detach-sign $${f} ; \ 60 done 61 62 .PHONY: checksum 63 checksum: 64 for f in _dist/*.{gz,zip} ; do \ 65 shasum -a 256 "$${f}" | awk '{print $$1}' > "$${f}.sha256" ; \ 66 echo -n "Checksum: " && cat $${f}.sha256 ; \ 67 done 68 69 .PHONY: check-docker 70 check-docker: 71 @if [ -z $$(which docker) ]; then \ 72 echo "Missing \`docker\` client which is required for development"; \ 73 exit 2; \ 74 fi 75 76 .PHONY: docker-binary 77 docker-binary: BINDIR = ./rootfs 78 docker-binary: GOFLAGS += -a -installsuffix cgo 79 docker-binary: 80 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 $(GO) build -o $(BINDIR)/helm $(GOFLAGS) -tags '$(TAGS)' -ldflags '$(LDFLAGS)' k8s.io/helm/cmd/helm 81 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 $(GO) build -o $(BINDIR)/tiller $(GOFLAGS) -tags '$(TAGS)' -ldflags '$(LDFLAGS)' k8s.io/helm/cmd/tiller 82 83 .PHONY: docker-build 84 docker-build: check-docker docker-binary 85 docker build --rm -t ${IMAGE} rootfs 86 docker tag ${IMAGE} ${MUTABLE_IMAGE} 87 88 .PHONY: docker-binary-rudder 89 docker-binary-rudder: BINDIR = ./rootfs 90 docker-binary-rudder: GOFLAGS += -a -installsuffix cgo 91 docker-binary-rudder: 92 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 $(GO) build -o $(BINDIR)/rudder $(GOFLAGS) -tags '$(TAGS)' -ldflags '$(LDFLAGS)' k8s.io/helm/cmd/rudder 93 94 .PHONY: docker-build-experimental 95 docker-build-experimental: check-docker docker-binary docker-binary-rudder 96 docker build --rm -t ${IMAGE} rootfs -f rootfs/Dockerfile.experimental 97 docker tag ${IMAGE} ${MUTABLE_IMAGE} 98 docker build --rm -t ${IMAGE_RUDDER} rootfs -f rootfs/Dockerfile.rudder 99 docker tag ${IMAGE_RUDDER} ${MUTABLE_IMAGE_RUDDER} 100 101 .PHONY: test 102 test: build 103 test: TESTFLAGS += -v 104 test: test-style 105 test: test-unit 106 107 .PHONY: docker-test 108 docker-test: docker-binary 109 docker-test: TESTFLAGS += -race -v 110 docker-test: docker-test-style 111 docker-test: docker-test-unit 112 113 .PHONY: test-unit 114 test-unit: 115 @echo 116 @echo "==> Running unit tests <==" 117 HELM_HOME=/no/such/dir $(GO) test $(GOFLAGS) -run $(TESTS) $(PKG) $(TESTFLAGS) 118 119 .PHONY: docker-test-unit 120 docker-test-unit: check-docker 121 docker run \ 122 -v $(shell pwd):/go/src/k8s.io/helm \ 123 -w /go/src/k8s.io/helm \ 124 $(DEV_IMAGE) \ 125 bash -c "HELM_HOME=/no/such/dir $(GO) test $(GOFLAGS) -run $(TESTS) $(PKG) $(TESTFLAGS)" 126 127 .PHONY: test-style 128 test-style: 129 @scripts/validate-go.sh 130 @scripts/validate-license.sh 131 132 .PHONY: docker-test-style 133 docker-test-style: check-docker 134 docker run \ 135 -v $(CURDIR):/go/src/k8s.io/helm \ 136 -w /go/src/k8s.io/helm \ 137 $(DEV_IMAGE) \ 138 bash -c "scripts/validate-go.sh && scripts/validate-license.sh" 139 140 .PHONY: protoc 141 protoc: 142 $(MAKE) -C _proto/ all 143 144 .PHONY: generate 145 generate: 146 $(GO) generate ./... 147 148 .PHONY: docs 149 docs: build 150 @scripts/update-docs.sh 151 152 .PHONY: verify-docs 153 verify-docs: build 154 @scripts/verify-docs.sh 155 156 .PHONY: clean 157 clean: 158 @rm -rf $(BINDIR) ./rootfs/tiller ./_dist 159 160 .PHONY: coverage 161 coverage: 162 @scripts/coverage.sh 163 164 HAS_GLIDE := $(shell command -v glide;) 165 HAS_GOX := $(shell command -v gox;) 166 HAS_GIT := $(shell command -v git;) 167 168 .PHONY: bootstrap 169 bootstrap: 170 ifndef HAS_GLIDE 171 $(GO) get -u github.com/Masterminds/glide 172 endif 173 ifndef HAS_GOX 174 $(GO) get -u github.com/mitchellh/gox 175 endif 176 177 ifndef HAS_GIT 178 $(error You must install Git) 179 endif 180 glide install --strip-vendor 181 $(GO) build -o bin/protoc-gen-go ./vendor/github.com/golang/protobuf/protoc-gen-go 182 183 include versioning.mk