-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
62 lines (48 loc) · 2.13 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
SHELL := bash
.SHELLFLAGS := -eu -o pipefail -c
.PHONY: unit \
harness-start \
harness-stop \
integration \
tests \
unit-docker \
integration-docker \
clean
# Runs the unit tests locally.
unit:
poetry run pytest -m "not integration"
# Starts the local integration harness. This is required for running pytest with the "integration" marker.
harness-start:
rm -rf ${PWD}/volume/deluge-{1,2,3}
docker compose -f docker-compose.local.yaml up
# Stops the local integration harness.
harness-stop:
docker compose -f docker-compose.local.yaml down --volumes --remove-orphans
# Runs the integration tests locally. This requires the integration harness to be running.
integration:
echo "NOTE: Make sure to have started the integration harness or this will not work"
poetry run pytest -m "integration"
tests: unit integration
docker/.lastbuilt-test.timestamp: docker/bittorrent-benchmarks.Dockerfile
docker build -t bittorrent-benchmarks:test -f ./docker/bittorrent-benchmarks.Dockerfile .
touch docker/.lastbuilt-test.timestamp
docker/.lastbuilt-release.timestamp: docker/bittorrent-benchmarks.Dockerfile
docker build -t bittorrent-benchmarks:test --build-arg BUILD_TYPE="release" \
-f ./docker/bittorrent-benchmarks.Dockerfile .
touch docker/.lastbuilt-release.timestamp
# Builds the test image required for local dockerized integration tests.
image-test: docker/.lastbuilt-test.timestamp
image-release: docker/.lastbuilt-release.timestamp
# Runs the unit tests in a docker container.
unit-docker: image-test
docker run --entrypoint poetry --rm bittorrent-benchmarks:test run pytest -m "not integration"
# Runs the integration tests in a docker container.
integration-docker: image-test
docker compose -f docker-compose.local.yaml -f docker-compose.ci.yaml down --volumes --remove-orphans
docker compose -f docker-compose.local.yaml -f docker-compose.ci.yaml up \
--abort-on-container-exit --exit-code-from test-runner
tests-docker: unit-docker integration-docker
clean:
rm -rf docker/.lastbuilt*
rm -rf volume/deluge-{1,2,3}
docker compose -f docker-compose.local.yaml -f docker-compose.ci.yaml down --volumes --rmi all --remove-orphans