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