.PHONY: test clean env .DELETE_ON_ERROR: # python interpreter to use export PYTHON=python3 # improve ansible output export ANSIBLE_CALLBACK_RESULT_FORMAT=yaml # reasonable default verbosity, crank to debug issues export ANSIBLE_VERBOSITY=0 # pipeline operations over ssh export ANSIBLE_PIPELINING=true # show breakdown of task times export ANSIBLE_CALLBACKS_ENABLED=profile_tasks # not useful since they are throwaways export ANSIBLE_HOST_KEY_CHECKING=false # run all machines in parallel export ANSIBLE_FORKS=10 ifeq ($(AWS_ACCESS_KEY_ID),) $(error AWS_ACCESS_KEY_ID is not set) endif ifeq ($(AWS_SECRET_ACCESS_KEY),) $(error AWS_SECRET_ACCESS_KEY is not set) endif ifeq ($(PATCH_BRANCH),) $(error PATCH_BRANCH is not set) endif # runs benchmark across AWS instances # always destroys anything created out there test: env bash -c "set -ex; trap 'build/.env/bin/ansible-playbook destroy.yml' EXIT; build/.env/bin/ansible-playbook playbook.yml" clean: rm -rf build # keep venv in sync with requirements.txt env: build/.env/bin/activate build/.env/bin/activate: requirements.txt rm -rf build/.env $(PYTHON) -m venv build/.env build/.env/bin/pip install --no-input -U -r requirements.txt touch build/.env/bin/activate