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