github.com/sdbaiguanghe/helm@v2.16.7+incompatible/Makefile (about)

     1  DOCKER_REGISTRY   ?= gcr.io
     2  IMAGE_PREFIX      ?= kubernetes-helm
     3  DEV_IMAGE         ?= golang:1.13.3
     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 += -race -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