|
14 | 14 | UID:=`id -u`
|
15 | 15 | GID:=`id -g`
|
16 | 16 | ITERATION=yelp1
|
| 17 | +VENV_DIR=venv |
| 18 | +VENV_BIN=$(VENV_DIR)/bin |
17 | 19 |
|
18 | 20 | # Determine environment (YELP or OSS)
|
19 | 21 | # Set SCL_ENV to 'YELP' if FQDN ends in '.yelpcorp.com'
|
|
24 | 26 | SCL_ENV ?= OSS
|
25 | 27 | endif
|
26 | 28 |
|
27 |
| -.PHONY: test tests-yelp tests-oss coverage clean venv venv-yelp venv-oss |
| 29 | +.PHONY: test tests-yelp tests-oss coverage clean venv |
28 | 30 |
|
29 | 31 |
|
30 | 32 | # Main test target dispatches to environment-specific test target
|
|
35 | 37 | $(MAKE) tests-oss
|
36 | 38 | endif
|
37 | 39 |
|
38 |
| -tests-yelp: venv-yelp |
39 |
| - tox -e py3-yelp # Assumes py3-yelp will be the tox env for yelp |
| 40 | +tests-yelp: venv |
| 41 | + . $(VENV_BIN)/activate && $(VENV_BIN)/tox -e tests-yelp |
40 | 42 |
|
41 |
| -tests-oss: venv-oss |
42 |
| - tox -e py3 # Assumes py3 will be the default/OSS tox env |
| 43 | +tests-oss: venv |
| 44 | + . $(VENV_BIN)/activate && $(VENV_BIN)/tox -e tests-oss |
43 | 45 |
|
44 | 46 | tests: test # Alias for backward compatibility or general use
|
45 | 47 | coverage: test
|
46 | 48 |
|
| 49 | +# Main venv target, creates venv with tox |
| 50 | +$(VENV_BIN)/activate: setup.py tox.ini requirements-dev.txt |
| 51 | + test -d $(VENV_DIR) || virtualenv -p python3.8 $(VENV_DIR) |
| 52 | + $(VENV_BIN)/pip install -U pip |
| 53 | + $(VENV_BIN)/pip install -U tox |
| 54 | + touch $(VENV_BIN)/activate |
| 55 | + |
| 56 | +venv: $(VENV_BIN)/activate |
| 57 | + |
47 | 58 | itest_%: package_%
|
48 | 59 | docker run -h fake.docker.hostname -v $(CURDIR):/work:rw docker-dev.yelpcorp.com/$*_yelp /bin/bash -c "/work/tests/ubuntu.sh"
|
49 | 60 | docker run -v $(CURDIR):/work:rw docker-dev.yelpcorp.com/$*_yelp chown -R $(UID):$(GID) /work
|
@@ -71,26 +82,12 @@ package_%:
|
71 | 82 | '
|
72 | 83 | docker run -v $(CURDIR):/work:rw docker-dev.yelpcorp.com/$*_yelp chown -R $(UID):$(GID) /work
|
73 | 84 |
|
74 |
| -# Main venv target dispatches to environment-specific target |
75 |
| -venv: |
76 |
| -ifeq ($(SCL_ENV),YELP) |
77 |
| - $(MAKE) venv-yelp |
78 |
| -else |
79 |
| - $(MAKE) venv-oss |
80 |
| -endif |
81 |
| - |
82 |
| -venv-yelp: requirements-yelp.txt requirements-oss.txt setup.py tox.ini |
83 |
| - tox -e venv-yelp # This tox env should install .[yelp] |
84 |
| - |
85 |
| -venv-oss: requirements-oss.txt setup.py tox.ini |
86 |
| - tox -e venv-oss # This tox env should install normally |
87 |
| - |
88 | 85 | clean:
|
89 | 86 | rm -rf .cache
|
90 | 87 | rm -rf dist/
|
91 | 88 | rm -rf build/
|
92 | 89 | rm -rf .tox
|
93 | 90 | rm -rf service_configuration_lib.egg-info/
|
94 |
| - rm -rf venv |
| 91 | + rm -rf $(VENV_DIR) |
95 | 92 | find . -name '*.pyc' -delete
|
96 | 93 | find . -name '__pycache__' -delete
|
0 commit comments