lucene/dev-tools/aws-jmh/Makefile

46 lines
1.2 KiB
Makefile

.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