github.com/miketheprogrammer/deis@v1.12.2/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) ./...