github.com/technosophos/deis@v1.7.1-0.20150915173815-f9005256004b/builder/Makefile (about) 1 include ../includes.mk 2 3 # the filepath to this repository, relative to $GOPATH/src 4 repo_path = github.com/deis/deis/builder 5 6 GO_FILES = $(wildcard *.go) 7 GO_PACKAGES = src tests 8 GO_PACKAGES_REPO_PATH = $(addprefix $(repo_path)/,$(GO_PACKAGES)) 9 10 COMPONENT = $(notdir $(repo_path)) 11 IMAGE = $(IMAGE_PREFIX)$(COMPONENT):$(BUILD_TAG) 12 DEV_IMAGE = $(REGISTRY)$(IMAGE) 13 BINARIES := extract-domain extract-types extract-version generate-buildhook get-app-config get-app-values publish-release-controller yaml2json-procfile 14 15 BINARY_DEST_DIR := rootfs/usr/bin 16 17 build: check-docker 18 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 godep go build -a -installsuffix cgo -ldflags '-s' -o $(BINARY_DEST_DIR)/builder cli/builder.go || exit 1 19 @$(call check-static-binary,$(BINARY_DEST_DIR)/builder) 20 for i in $(BINARIES); do \ 21 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 godep go build -a -installsuffix cgo -ldflags '-s' -o $(BINARY_DEST_DIR)/$$i src/$$i.go || exit 1; \ 22 done 23 @for i in $(BINARIES); do \ 24 $(call check-static-binary,$(BINARY_DEST_DIR)/$$i); \ 25 done 26 docker build -t $(IMAGE) rootfs 27 28 clean: check-docker check-registry 29 for i in $(BINARIES); do \ 30 rm -rf $(BINARY_DEST_DIR)/$$i ; \ 31 done 32 docker rmi $(IMAGE) 33 34 full-clean: check-docker check-registry clean 35 docker images -q $(IMAGE_PREFIX)$(COMPONENT) | xargs docker rmi -f 36 37 install: check-deisctl 38 deisctl install $(COMPONENT) 39 40 uninstall: check-deisctl 41 deisctl uninstall $(COMPONENT) 42 43 start: check-deisctl 44 deisctl start $(COMPONENT) 45 46 stop: check-deisctl 47 deisctl stop $(COMPONENT) 48 49 restart: stop start 50 51 run: install start 52 53 dev-release: push set-image 54 55 push: check-registry 56 docker tag -f $(IMAGE) $(DEV_IMAGE) 57 docker push $(DEV_IMAGE) 58 59 set-image: check-deisctl 60 deisctl config $(COMPONENT) set image=$(DEV_IMAGE) 61 62 release: 63 docker push $(IMAGE) 64 65 deploy: build dev-release restart 66 67 test: test-style test-unit test-functional 68 69 test-unit: 70 $(GOTEST) . ./etcd ./confd ./sshd ./cli ./docker 71 72 test-functional: 73 @$(MAKE) -C ../tests/ test-etcd 74 godep go test -v ./tests/... 75 76 test-style: 77 # display output, then check 78 $(GOFMT) $(GO_PACKAGES) $(GO_FILES) 79 @$(GOFMT) $(GO_PACKAGES) $(GO_FILES) | read; if [ $$? == 0 ]; then echo "gofmt check failed."; exit 1; fi 80 $(GOVET) $(repo_path) $(GO_PACKAGES_REPO_PATH) 81 $(GOLINT) ./...