-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile
150 lines (124 loc) · 4.61 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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#!/usr/bin/make -f
SHELL := /bin/bash
.PHONY: coverage docs site build
version:
echo $$(cat VERSION)
clean:
docker rm -f $$(docker ps -a -q -f "name=envoy-playground") 2> /dev/null || :
docs:
COMPOSE_FILE=./composition/docker-compose.yaml docker-compose build docs
COMPOSE_FILE=./composition/docker-compose.yaml docker-compose run \
--rm \
docs
site:
echo "Building site..."
mkdir tmp/ -p
rm -rf tmp/docs
rm -rf build/site
mkdir -p build
cp -a docs tmp
cp -a VERSION tmp/
pip install -U pip setuptools
pip install -e .[docs]
./bin/generate-docs.py tmp/docs services/services.yaml
sphinx-build -W --keep-going -b dirhtml tmp/docs build/site/docs
npm install -g yarn
cp -a services/services.yaml site/src
cp -a services site/public
cd site && yarn install && yarn build
rm -rf site/src/services/services.yaml
rm -rf site/public/services
cp -a site/build/* build/site
run: clean
docker run -d \
--name envoy-playground \
--privileged \
-p 8000:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \
envoy-playground
run-published: clean
docker pull phlax/envoy-playground:$$(cat VERSION)
docker run -d \
--name envoy-playground \
--privileged \
-p 8000:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \
phlax/envoy-playground:$$(cat VERSION)
shell:
docker run -it --rm \
--workdir /code \
--entrypoint /bin/bash \
envoy-playground
build:
docker build -t envoy-playground .
publish:
docker tag envoy-playground phlax/envoy-playground:$$(cat VERSION)
docker push phlax/envoy-playground:$$(cat VERSION)
coverage:
bash <(curl -s https://codecov.io/bash)
exec:
docker exec -it --workdir /code envoy-playground bash
test:
./bin/runtests.sh
integration-clean:
COMPOSE_FILE=./integration/composition/docker-compose.yaml docker-compose stop integration
build-image: build
mkdir -p tmp/docker
docker save envoy-playground | gzip > tmp/docker/playground.tar.gz
integration-test: integration-clean build-image
COMPOSE_FILE=./integration/composition/docker-compose.yaml docker-compose up --build -d integration-start
COMPOSE_FILE=./integration/composition/docker-compose.yaml docker-compose exec -T integration sh -c "CI=1 ./bin/runtests.sh"
screenshots-test: screenshots
git checkout docs/screenshots/network.create.starting.png
git checkout docs/screenshots/network.create.started.png
git checkout docs/screenshots/proxy.create.started.png
git checkout docs/screenshots/proxy.create.starting.png
git checkout docs/screenshots/service.create.starting.png
git checkout docs/screenshots/service.create.started.png
git diff --quiet HEAD -- docs || (echo -e "\nDid you forget to re-create screenshots?" && git diff HEAD -- docs && exit 1)
dev-integration: integration-clean build-image
COMPOSE_FILE=./integration/composition/docker-compose.yaml docker-compose up --build -d integration
sleep 5
COMPOSE_FILE=./integration/composition/docker-compose.yaml docker-compose exec integration ./bin/start-playground.sh
COMPOSE_FILE=./integration/composition/docker-compose.yaml docker-compose exec integration ./bin/start-wetty.sh
COMPOSE_FILE=./integration/composition/docker-compose.yaml docker-compose exec integration ./bin/start-selenium.sh
COMMAND="./bin/run-testenv.sh /bin/sh -c \"PLAYGROUND_VERSION=$$(cat VERSION) /bin/bash\"" && COMPOSE_FILE=./integration/composition/docker-compose.yaml docker-compose exec integration sh -c "$$COMMAND"
screenshots: integration-clean build-image
mkdir tmp/ -p
rm -rf tmp/artifacts
mkdir -p tmp/artifacts
COMPOSE_FILE=./integration/composition/docker-compose.yaml docker-compose up --build -d integration-start
COMPOSE_FILE=./integration/composition/docker-compose.yaml docker-compose exec -T integration sh -c "CI=1 ./bin/create-screenshots.sh"
rm -f docs/screenshots/*
cp -a tmp/artifacts/*png docs/screenshots/
dev-control: clean
COMPOSE_FILE=./composition/docker-compose.yaml docker-compose build control
COMPOSE_FILE=./composition/docker-compose.yaml docker-compose run \
--rm \
-p 8000:8080 \
control
dev-control-sh:
COMPOSE_FILE=./composition/docker-compose.yaml docker-compose build control
COMPOSE_FILE=./composition/docker-compose.yaml docker-compose run \
--rm \
-p 8000:8080 \
control /bin/bash
dev-ui:
COMPOSE_FILE=./composition/docker-compose.yaml docker-compose run \
--rm \
-p 5555:3000 \
ui yarn start
dev-ui-test:
COMPOSE_FILE=./composition/docker-compose.yaml docker-compose run \
--rm \
ui yarn test
dev-ui-sh:
COMPOSE_FILE=./composition/docker-compose.yaml docker-compose run \
--rm \
-p 5555:3000 \
ui sh
dev-site:
COMPOSE_FILE=./composition/docker-compose.yaml docker-compose run \
--rm \
-p 7777:3000 \
site sh