-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
109 lines (75 loc) · 2.18 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
NAMESPACE=unixs
IMAGE=node-btree-testing
REPO=$(NAMESPACE)/$(IMAGE)
LEGACY_TAG=legacy
LATEST_TAG=latest
LEGACY_FILE=docker/ubuntu-$(LEGACY_TAG)-tests.dockerfile
LATEST_FILE=docker/ubuntu-$(LATEST_TAG)-tests.dockerfile
PWD:=$(shell pwd)
WORKDIR=/home/developer/dev
VOLUME=$(PWD):$(WORKDIR)
BUILD_DIR=build
COVERAGE_DIR=coverage
COVERAGE_REPORT=$(COVERAGE_DIR)/index.html
default_target: docker-build-all
.PHONY : default_target
rebuild-debug:
npx cmake-js rebuild -D
.PHONY : rebuild-debug
rebuild:
npx cmake-js rebuild
.PHONY : rebuild
build-debug:
npx cmake-js build -D
.PHONY : build-debug
build:
npx cmake-js build
.PHONY : build
docker-build-latest:
docker build -t $(REPO):$(LATEST_TAG) -f $(LATEST_FILE) .
.PHONY : docker-build-latest
docker-build-legacy:
docker build -t $(REPO):$(LEGACY_TAG) -f $(LEGACY_FILE) .
.PHONY : docker-build-legacy
docker-build: docker-build-legacy docker-build-latest
.PHONY : docker-build
docker-push-latest: docker-build-latest
docker push $(REPO):$(LATEST_TAG)
.PHONY : docker-push-latest
docker-push-legacy: docker-build-legacy
docker push $(REPO):$(LEGACY_TAG)
.PHONY : docker-push-legacy
docker-push: docker-push-latest docker-push-legacy
.PHONY : docker-push
docker-test-latest: docker-build-latest
docker run -it --rm -h $(LATEST_TAG) -v $(VOLUME) $(REPO):$(LATEST_TAG)
.PHONY : docker-test-latest
docker-test-legacy: docker-build-legacy
docker run -it --rm -h $(LEGACY_TAG) -v $(VOLUME) $(REPO):$(LEGACY_TAG)
.PHONY : docker-test-legacy
test-jest: rebuild
npm test
.PHONY : test-jest
test-jest-debug: rebuild-debug
NODE_ENV=development npm test
.PHONY : test-jest-debug
docker-test: docker-test-legacy docker-test-latest
.PHONY : docker-test
test: docker-test-legacy docker-test-latest test-jest coverage
.PHONY : test
coverage: test-jest-debug
cd build && ctest -VV
.PHONY : coverage
coverage-html: clean-coverage test-jest-debug
mkdir $(COVERAGE_DIR)
gcovr --print-summary --html --html-details -o $(COVERAGE_REPORT) -r . $(BUILD_DIR)
.PHONY : coverage-html
clean-coverage:
rm -rf $(COVERAGE_DIR)
.PHONY : clean-coverage
clean: clean-coverage
rm -rvf $(BUILD_DIR) Testing
.PHONY : clean
install-deps:
npm ci
.PHONY : install-deps