You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
helm/Makefile

84 lines
2.0 KiB

9 years ago
ifndef GOPATH
$(error No GOPATH set)
endif
BIN_DIR := bin
DIST_DIR := _dist
GO_PACKAGES := action chart config dependency log manifest release plugins/sec plugins/example codec
MAIN_GO := helm.go
HELM_BIN := $(BIN_DIR)/helm
PATH_WITH_HELM = PATH="$(shell pwd)/$(BIN_DIR):$(PATH)"
VERSION := $(shell git describe --tags --abbrev=0 2>/dev/null)+$(shell git rev-parse --short HEAD)
export GO15VENDOREXPERIMENT=1
ifndef VERSION
VERSION := git-$(shell git rev-parse --short HEAD)
endif
build: $(MAIN_GO)
go build -o $(HELM_BIN) -ldflags "-X github.com/helm/helm/cli.version=${VERSION}" $<
bootstrap:
go get -u github.com/golang/lint/golint github.com/mitchellh/gox
glide install
build-all:
gox -verbose \
-ldflags "-X main.version=${VERSION}" \
-os="linux darwin " \
-arch="amd64 386" \
-output="$(DIST_DIR)/{{.OS}}-{{.Arch}}/{{.Dir}}" .
clean:
rm -rf $(DIST_DIR) $(BIN_DIR)
dist: build-all
@cd $(DIST_DIR) && \
find * -type d -exec zip -jr helm-$(VERSION)-{}.zip {} \; && \
cd -
install: build
install -d ${DESTDIR}/usr/local/bin/
install -m 755 $(HELM_BIN) ${DESTDIR}/usr/local/bin/helm
prep-bintray-json:
# TRAVIS_TAG is set to the tag name if the build is a tag
ifdef TRAVIS_TAG
@jq '.version.name |= "$(VERSION)"' _scripts/ci/bintray-template.json | \
jq '.package.repo |= "helm"' > _scripts/ci/bintray-ci.json
else
@jq '.version.name |= "$(VERSION)"' _scripts/ci/bintray-template.json \
> _scripts/ci/bintray-ci.json
endif
quicktest:
$(PATH_WITH_HELM) go test -short ./ $(addprefix ./,$(GO_PACKAGES))
test: test-style
$(PATH_WITH_HELM) go test -v ./ $(addprefix ./,$(GO_PACKAGES))
test-style:
@if [ $(shell gofmt -e -l -s *.go $(GO_PACKAGES)) ]; then \
echo "gofmt check failed:"; gofmt -e -l -s *.go $(GO_PACKAGES); exit 1; \
fi
@for i in . $(GO_PACKAGES); do \
golint $$i; \
done
@for i in . $(GO_PACKAGES); do \
go vet github.com/helm/helm/$$i; \
done
.PHONY: bootstrap \
build \
build-all \
clean \
dist \
install \
prep-bintray-json \
quicktest \
test \
test-charts \
test-style