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