github.com/technosophos/deis@v1.7.1-0.20150915173815-f9005256004b/mesos/Makefile (about) 1 include ../includes.mk 2 3 REPO = deis 4 MESOS = 0.22.1-1.0.ubuntu1404 5 ZOOKEEPER_VERSION = 3.5.0 6 MARATHON_VERSION = 0.8.2-RC3 7 8 repo_path = github.com/deis/deis/mesos 9 10 GO = godep go 11 GOFMT = gofmt -l 12 GOLINT = golint 13 GOTEST = $(GO) test -cover -race -v 14 GOVET = $(GO) vet 15 16 COMPONENT = $(notdir $(repo_path)) 17 GO_PACKAGES = pkg/boot pkg/confd pkg/etcd pkg/fleet pkg/log pkg/net pkg/os pkg/types 18 GO_PACKAGES_REPO_PATH = $(addprefix $(repo_path)/,$(GO_PACKAGES)) 19 20 SHELL_SCRIPTS = $(shell find "." -name '*.sh') 21 22 MASTER_IMAGE = $(IMAGE_PREFIX)mesos-master:$(BUILD_TAG) 23 MASTER_DEV_IMAGE = $(REGISTRY)$(MASTER_IMAGE) 24 MARATHON_IMAGE = $(IMAGE_PREFIX)mesos-marathon:$(BUILD_TAG) 25 MARATHON_DEV_IMAGE = $(REGISTRY)$(MARATHON_IMAGE) 26 SLAVE_IMAGE = $(IMAGE_PREFIX)mesos-slave:$(BUILD_TAG) 27 SLAVE_DEV_IMAGE = $(REGISTRY)$(SLAVE_IMAGE) 28 ZOOKEEPER_IMAGE = $(IMAGE_PREFIX)zookeeper:$(BUILD_TAG) 29 ZOOKEEPER_DEV_IMAGE = $(REGISTRY)$(ZOOKEEPER_IMAGE) 30 31 build: test-style zookeeper-go mesos-template mesos-master mesos-slave mesos-marathon zookeeper 32 33 install: check-deisctl 34 deisctl install $(COMPONENT) 35 36 uninstall: check-deisctl 37 deisctl uninstall $(COMPONENT) 38 39 start: check-deisctl 40 deisctl start $(COMPONENT) 41 42 stop: check-deisctl 43 deisctl stop $(COMPONENT) 44 45 restart: stop start 46 47 run: install start 48 49 dev-release: push set-image 50 51 push: check-registry 52 docker tag -f $(MASTER_IMAGE) $(MASTER_DEV_IMAGE) 53 docker push $(MASTER_DEV_IMAGE) 54 docker tag -f $(SLAVE_IMAGE) $(SLAVE_DEV_IMAGE) 55 docker push $(SLAVE_DEV_IMAGE) 56 docker tag -f $(MARATHON_IMAGE) $(MARATHON_DEV_IMAGE) 57 docker push $(MARATHON_DEV_IMAGE) 58 docker tag -f $(ZOOKEEPER_IMAGE) $(ZOOKEEPER_DEV_IMAGE) 59 docker push $(ZOOKEEPER_DEV_IMAGE) 60 61 set-image: check-deisctl 62 deisctl config mesos-master set image=$(MASTER_DEV_IMAGE) 63 deisctl config mesos-slave set image=$(SLAVE_DEV_IMAGE) 64 deisctl config mesos-marathon set image=$(MARATHON_DEV_IMAGE) 65 deisctl config zookeeper set image=$(ZOOKEEPER_DEV_IMAGE) 66 67 release: 68 docker push $(MASTER_IMAGE) 69 docker push $(SLAVE_IMAGE) 70 docker push $(MARATHON_IMAGE) 71 docker push $(ZOOKEEPER_IMAGE) 72 73 deploy: build dev-release restart 74 75 setup-gotools: 76 go get -u github.com/jteeuwen/go-bindata/... 77 78 mesos-go: setup-gotools 79 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 godep go build -a -installsuffix cgo -ldflags '-s' -o bin/master-boot pkg/boot/mesos/master/main.go 80 @$(call check-static-binary,bin/master-boot) 81 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 godep go build -a -installsuffix cgo -ldflags '-s' -o bin/slave-boot pkg/boot/mesos/slave/main.go 82 @$(call check-static-binary,bin/slave-boot) 83 go-bindata -pkg bindata -o bindata/marathon/bindata.go pkg/boot/mesos/marathon/bash/; \ 84 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 godep go build -a -installsuffix cgo -ldflags '-s' -o bin/marathon-boot pkg/boot/mesos/marathon/main.go 85 @$(call check-static-binary,bin/marathon-boot) 86 87 mesos-template: 88 sed "s/#VERSION#/$(MESOS)/g" template > Dockerfile 89 docker build -t $(IMAGE_PREFIX)$@:$(BUILD_TAG) . 90 rm -f Dockerfile 91 92 mesos-master: mesos-go mesos-template 93 sed "s@#PREFIX#@$(IMAGE_PREFIX)@;s/#VERSION#/$(BUILD_TAG)/g" master > Dockerfile 94 docker build -t $(IMAGE_PREFIX)$@:$(BUILD_TAG) . 95 rm -f Dockerfile 96 97 mesos-slave: mesos-go mesos-template 98 sed "s@#PREFIX#@$(IMAGE_PREFIX)@;s/#VERSION#/$(BUILD_TAG)/g" slave > Dockerfile 99 docker build -t $(IMAGE_PREFIX)$@:$(BUILD_TAG) . 100 rm -f Dockerfile 101 102 build-mesos-marathon: mesos-template 103 sed "s/#MARATHON_VERSION#/$(MARATHON_VERSION)/;s@#PREFIX#@$(IMAGE_PREFIX)@;s/#VERSION#/$(BUILD_TAG)/g" build-marathon > Dockerfile 104 docker build -t $(IMAGE_PREFIX)$@:$(BUILD_TAG) . 105 rm -f Dockerfile 106 107 mesos-marathon: mesos-go build-mesos-marathon 108 cp marathon Dockerfile 109 docker cp `docker create $(IMAGE_PREFIX)build-mesos-marathon:$(BUILD_TAG) /bin/bash`:/marathon/target/marathon-assembly-$(MARATHON_VERSION).jar . 110 mv marathon-assembly-$(MARATHON_VERSION).jar marathon-assembly.jar 111 sed "s/#MARATHON_VERSION#/$(MARATHON_VERSION)/;s@#PREFIX#@$(IMAGE_PREFIX)@;s/#VERSION#/$(BUILD_TAG)/" marathon > Dockerfile 112 docker build -t $(IMAGE_PREFIX)$@:$(BUILD_TAG) . 113 rm -f Dockerfile 114 115 zookeeper: zookeeper-go 116 docker build -t $(IMAGE_PREFIX)$@:$(BUILD_TAG) zookeeper/. 117 118 zookeeper-go: 119 echo "Building..." 120 go-bindata -pkg bindata -o bindata/zookeeper/bindata.go pkg/boot/zookeeper/bash/; \ 121 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 godep go build -a -installsuffix cgo -ldflags '-s' -o zookeeper/bin/boot pkg/boot/zookeeper/main/boot.go 122 @$(call check-static-binary,zookeeper/bin/boot) 123 124 test: mesos-go zookeeper-go 125 @$(GOFMT) -timeout 10s $(GO_PACKAGES) 126 127 test-style: 128 @$(GOFMT) $(GO_PACKAGES) 129 @$(GOFMT) $(GO_PACKAGES) | read; if [ $$? == 0 ]; then echo "gofmt check failed."; exit 1; fi 130 $(GOVET) $(GO_PACKAGES_REPO_PATH) 131 @for i in $(addsuffix /...,$(GO_PACKAGES)); do \ 132 $(GOLINT) $$i; \ 133 done 134 shellcheck $(SHELL_SCRIPTS)