Skip to content

Commit 45015a5

Browse files
author
Gabriel Monroy
committed
Merge pull request #1951 from gabrtv/make-release
Cleanup Makefile and test suites in preparation for new CD pipeline
2 parents e800baa + f8dd119 commit 45015a5

18 files changed

Lines changed: 566 additions & 226 deletions

File tree

Makefile

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,47 +6,60 @@ include includes.mk
66

77
COMPONENTS=builder cache controller database logger registry router
88
START_ORDER=logger database cache registry controller builder router
9+
CLIENTS=client deisctl
910

1011
all: build run
1112

1213
dev-registry: check-docker
13-
@docker run -d -p 5000:5000 --name registry registry:0.8.1
14+
@docker inspect registry >/dev/null && docker start registry || docker run -d -p 5000:5000 --name registry registry:0.8.1
1415
@echo
15-
@echo "To configure the registry for local Deis development:"
16-
@echo " export DEIS_REGISTRY=`boot2docker ip 2>/dev/null`:5000"
16+
@echo "To use local boot2docker registry for Deis development:"
17+
@echo " export DEV_REGISTRY=`boot2docker ip 2>/dev/null`:5000"
1718

1819
discovery-url:
19-
sed -i .orig -e "s,# discovery: https://discovery.etcd.io/12345693838asdfasfadf13939923,discovery: $$(curl -s -w '\n' https://discovery.etcd.io/new)," contrib/coreos/user-data
20+
sed -e "s,# discovery: https://discovery.etcd.io/12345693838asdfasfadf13939923,discovery: $$(curl -s -w '\n' https://discovery.etcd.io/new)," contrib/coreos/user-data > contrib/coreos/user-data.new
21+
mv contrib/coreos/user-data.new contrib/coreos/user-data
2022

2123
build: check-docker
22-
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) build || exit 1;)
24+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) build &&) echo done
25+
@$(foreach C, $(CLIENTS), $(MAKE) -C $(C) build &&) echo done
26+
27+
clean:
28+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) clean &&) echo done
29+
@$(foreach C, $(CLIENTS), $(MAKE) -C $(C) clean &&) echo done
2330

24-
push: check-docker check-registry
25-
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) push || exit 1;)
26-
2731
full-clean:
28-
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) full-clean || exit 1;)
32+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) full-clean &&) echo done
2933

3034
install:
31-
@$(foreach C, $(START_ORDER), $(MAKE) -C $(C) install || exit 1;)
35+
@$(foreach C, $(START_ORDER), $(MAKE) -C $(C) install &&) echo done
3236

3337
uninstall:
34-
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) uninstall || exit 1;)
38+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) uninstall &&) echo done
3539

3640
start:
37-
@$(foreach C, $(START_ORDER), $(MAKE) -C $(C) start || exit 1;)
41+
@$(foreach C, $(START_ORDER), $(MAKE) -C $(C) start &&) echo done
3842

3943
stop:
40-
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) stop || exit 1;)
44+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) stop &&) echo done
4145

4246
restart: stop start
4347

4448
run: install start
4549

50+
dev-release:
51+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) dev-release &&) echo done
52+
53+
release: check-registry
54+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) release &&) echo done
55+
@$(foreach C, $(CLIENTS), $(MAKE) -C $(C) release &&) echo done
56+
57+
deploy: build dev-release restart
58+
4659
test: test-components push test-integration
4760

4861
test-components:
49-
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) test || exit 1;)
62+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) test &&) echo done
5063

5164
test-integration:
5265
$(MAKE) -C tests/ test-full

builder/Makefile

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,45 @@
11
include ../includes.mk
22

3-
build: check-docker
4-
docker build -t deis/builder:$(BUILD_TAG) .
3+
COMPONENT = builder
4+
IMAGE = $(IMAGE_PREFIX)$(COMPONENT):$(BUILD_TAG)
5+
DEV_IMAGE = $(DEV_REGISTRY)/$(IMAGE)
56

6-
push: check-docker check-registry check-deisctl
7-
docker tag deis/builder:$(BUILD_TAG) $(REGISTRY)/deis/builder:$(BUILD_TAG)
8-
docker push $(REGISTRY)/deis/builder:$(BUILD_TAG)
9-
deisctl config builder set image=$(REGISTRY)/deis/builder:$(BUILD_TAG)
7+
build: check-docker
8+
docker build -t $(IMAGE) .
109

1110
clean: check-docker check-registry
12-
docker rmi deis/builder:$(BUILD_TAG)
13-
docker rmi $(REGISTRY)/deis/builder:$(BUILD_TAG)
11+
rm -f deisctl
12+
docker rmi $(IMAGE)
1413

15-
full-clean: check-docker check-registry
16-
docker images -q deis/builder | xargs docker rmi -f
17-
docker images -q $(REGISTRY)/deis/builder | xargs docker rmi -f
14+
full-clean: check-docker check-registry clean
15+
docker images -q $(IMAGE_PREFIX)$(COMPONENT) | xargs docker rmi -f
1816

1917
install: check-deisctl
20-
deisctl scale builder=1
18+
deisctl scale $(COMPONENT)=1
2119

2220
uninstall: check-deisctl
23-
deisctl scale builder=0
21+
deisctl scale $(COMPONENT)=0
2422

2523
start: check-deisctl
26-
deisctl start builder
24+
deisctl start $(COMPONENT)
2725

2826
stop: check-deisctl
29-
deisctl stop builder
27+
deisctl stop $(COMPONENT)
3028

3129
restart: stop start
3230

3331
run: install start
3432

33+
dev-release: check-registry check-deisctl
34+
docker tag $(IMAGE) $(DEV_IMAGE)
35+
docker push $(DEV_IMAGE)
36+
deisctl config $(COMPONENT) set image=$(DEV_IMAGE)
37+
38+
release:
39+
docker push $(IMAGE)
40+
41+
deploy: build dev-release restart
42+
3543
test: test-unit test-functional
3644

3745
test-unit:

cache/Makefile

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,44 @@
11
include ../includes.mk
22

3-
build: check-docker
4-
docker build -t deis/cache:$(BUILD_TAG) .
3+
COMPONENT = cache
4+
IMAGE = $(IMAGE_PREFIX)$(COMPONENT):$(BUILD_TAG)
5+
DEV_IMAGE = $(DEV_REGISTRY)/$(IMAGE)
56

6-
push: check-docker check-registry check-deisctl
7-
docker tag deis/cache:$(BUILD_TAG) $(REGISTRY)/deis/cache:$(BUILD_TAG)
8-
docker push $(REGISTRY)/deis/cache:$(BUILD_TAG)
9-
deisctl config cache set image=$(REGISTRY)/deis/cache:$(BUILD_TAG)
7+
build: check-docker
8+
docker build -t $(IMAGE) .
109

1110
clean: check-docker check-registry
12-
docker rmi deis/cache:$(BUILD_TAG)
13-
docker rmi $(REGISTRY)/deis/cache:$(BUILD_TAG)
11+
docker rmi $(IMAGE)
1412

1513
full-clean: check-docker check-registry
16-
docker images -q deis/cache | xargs docker rmi -f
17-
docker images -q $(REGISTRY)/deis/cache | xargs docker rmi -f
14+
docker images -q $(IMAGE_PREFIX)$(COMPONENT) | xargs docker rmi -f
1815

1916
install: check-deisctl
20-
deisctl scale cache=1
17+
deisctl scale $(COMPONENT)=1
2118

2219
uninstall: check-deisctl
23-
deisctl scale cache=0
20+
deisctl scale $(COMPONENT)=0
2421

2522
start: check-deisctl
26-
deisctl start cache
23+
deisctl start $(COMPONENT)
2724

2825
stop: check-deisctl
29-
deisctl stop cache
26+
deisctl stop $(COMPONENT)
3027

3128
restart: stop start
3229

3330
run: install start
3431

32+
dev-release: check-registry check-deisctl
33+
docker tag $(IMAGE) $(DEV_IMAGE)
34+
docker push $(DEV_IMAGE)
35+
deisctl config $(COMPONENT) set image=$(DEV_IMAGE)
36+
37+
release:
38+
docker push $(IMAGE)
39+
40+
deploy: build dev-release restart
41+
3542
test: test-unit test-functional
3643

3744
test-unit:

client/Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11

2+
build: setup-venv
3+
venv/bin/pip install docopt==0.6.2 python-dateutil==2.2 requests==2.3.0 pyinstaller==2.1 termcolor==1.1.0
4+
venv/bin/pyinstaller deis.spec
5+
chmod +x dist/deis
6+
27
# Install deis client locally through pip.
38
install:
49
pip install .

controller/Makefile

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,45 @@ include ../includes.mk
44

55
all: build run
66

7-
build: check-docker
8-
docker build -t deis/controller:$(BUILD_TAG) .
7+
COMPONENT = controller
8+
IMAGE = $(IMAGE_PREFIX)$(COMPONENT):$(BUILD_TAG)
9+
DEV_IMAGE = $(DEV_REGISTRY)/$(IMAGE)
910

10-
push: check-docker check-registry check-deisctl
11-
docker tag deis/controller:$(BUILD_TAG) $(REGISTRY)/deis/controller:$(BUILD_TAG)
12-
docker push $(REGISTRY)/deis/controller:$(BUILD_TAG)
13-
deisctl config controller set image=$(REGISTRY)/deis/controller:$(BUILD_TAG)
11+
build: check-docker
12+
docker build -t $(IMAGE) .
1413

1514
clean: check-docker check-registry
16-
docker rmi deis/controller:$(BUILD_TAG)
17-
docker rmi $(REGISTRY)/deis/controller:$(BUILD_TAG)
15+
docker rmi $(IMAGE)
1816

1917
full-clean: check-docker check-registry
20-
docker images -q deis/controller | xargs docker rmi -f
21-
docker images -q $(REGISTRY)/deis/controller | xargs docker rmi -f
18+
docker images -q $(IMAGE_PREFIX)$(COMPONENT) | xargs docker rmi -f
2219

2320
install: check-deisctl
24-
deisctl scale controller=1
21+
deisctl scale $(COMPONENT)=1
2522

2623
uninstall: check-deisctl
27-
deisctl scale controller=0
24+
deisctl scale $(COMPONENT)=0
2825

2926
start: check-deisctl
30-
deisctl start controller
27+
deisctl start $(COMPONENT)
3128

3229
stop: check-deisctl
33-
deisctl stop controller
30+
deisctl stop $(COMPONENT)
3431

3532
restart: stop start
3633

3734
run: install start
3835

36+
dev-release: check-registry check-deisctl
37+
docker tag $(IMAGE) $(DEV_IMAGE)
38+
docker push $(DEV_IMAGE)
39+
deisctl config $(COMPONENT) set image=$(DEV_IMAGE)
40+
41+
release:
42+
docker push $(IMAGE)
43+
44+
deploy: build dev-release restart
45+
3946
runserver:
4047
python manage.py runserver
4148

database/Makefile

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,44 @@
11
include ../includes.mk
22

3-
build: check-docker
4-
docker build -t deis/database:$(BUILD_TAG) .
3+
COMPONENT = database
4+
IMAGE = $(IMAGE_PREFIX)$(COMPONENT):$(BUILD_TAG)
5+
DEV_IMAGE = $(DEV_REGISTRY)/$(IMAGE)
56

6-
push: check-docker check-registry check-deisctl
7-
docker tag deis/database:$(BUILD_TAG) $(REGISTRY)/deis/database:$(BUILD_TAG)
8-
docker push $(REGISTRY)/deis/database:$(BUILD_TAG)
9-
deisctl config database set image=$(REGISTRY)/deis/database:$(BUILD_TAG)
7+
build: check-docker
8+
docker build -t $(IMAGE) .
109

1110
clean: check-docker check-registry
12-
docker rmi deis/database:$(BUILD_TAG)
13-
docker rmi $(REGISTRY)/deis/database:$(BUILD_TAG)
11+
docker rmi $(IMAGE)
1412

1513
full-clean: check-docker check-registry
16-
docker images -q deis/database | xargs docker rmi -f
17-
docker images -q $(REGISTRY)/deis/database | xargs docker rmi -f
14+
docker images -q $(IMAGE_PREFIX)$(COMPONENT) | xargs docker rmi -f
1815

1916
install: check-deisctl
20-
deisctl install database-data
21-
deisctl scale database=1
17+
deisctl scale $(COMPONENT)=1
2218

2319
uninstall: check-deisctl
24-
deisctl scale database=0
25-
deisctl uninstall database-data
20+
deisctl scale $(COMPONENT)=0
2621

2722
start: check-deisctl
28-
deisctl start database
23+
deisctl start $(COMPONENT)
2924

3025
stop: check-deisctl
31-
deisctl stop database
26+
deisctl stop $(COMPONENT)
3227

3328
restart: stop start
3429

3530
run: install start
3631

32+
dev-release: check-registry check-deisctl
33+
docker tag $(IMAGE) $(DEV_IMAGE)
34+
docker push $(DEV_IMAGE)
35+
deisctl config $(COMPONENT) set image=$(DEV_IMAGE)
36+
37+
release:
38+
docker push $(IMAGE)
39+
40+
deploy: build dev-release restart
41+
3742
test: test-unit test-functional
3843

3944
test-unit:

deisctl/.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@ tags
77

88
# installer droppings
99
dist/
10+
11+
# make build droppings
12+
deisctl

deisctl/Makefile

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
COMPONENTS=builder cache controller database logger registry router
1+
include ../includes.mk
2+
3+
COMPONENT = deisctl
4+
IMAGE = $(IMAGE_PREFIX)/$(COMPONENT):$(BUILD_TAG)
5+
PACKAGE = $(COMPONENT)-$(BUILD_TAG).tar.gz
26

37
build:
48
CGO_ENABLED=0 godep go build -a -ldflags '-s' .
@@ -29,9 +33,10 @@ test-style:
2933
test: test-style
3034
godep go test -v -cover ./...
3135

32-
package:
33-
rm -f package
34-
docker build -t deis/deis/deisctl .
35-
mkdir -p package
36-
-docker cp `docker run -d deis/deis/deisctl`:/tmp/deisctl.tar.gz package/
37-
mv package/deisctl.tar.gz package/deisctl-v`cat deis-version`.tar.gz
36+
release: check-docker
37+
rm -rf dist
38+
docker build -t $(IMAGE) .
39+
mkdir -p dist
40+
-docker cp `docker run -d $(IMAGE)`:/tmp/deisctl.tar.gz dist/
41+
mv dist/deisctl.tar.gz dist/$(PACKAGE)
42+
aws s3 cp dist/$(PACKAGE) s3://$(S3_BUCKET)/$(PACKAGE) --acl public-read

0 commit comments

Comments
 (0)