IMAGE_NAME ?= delphi-qa-automation
REVISION ?= $(shell git rev-parse --short=8 HEAD)
#VERSION ?= $(shell cat ./VERSION)
BUILDTIME = $(shell date -u +"%Y%m%d%H%M%S")
BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)

VENV_NAME?=venv
VENV_ACTIVATE=. $(VENV_NAME)/bin/activate
PYTHON=$(VENV_NAME)/bin/python3

venv: $(VENV_NAME)/bin/activate
$(VENV_NAME)/bin/activate:
	test -d $(VENV_NAME) || python3 -m venv $(VENV_NAME)
	$(PYTHON) -m pip install -U pip wheel
	$(PYTHON) -m pip install -r requirements.txt
	touch $(VENV_NAME)/bin/activate

.PHONY:devenv
devenv: venv
	$(PYTHON) -m pip install -r requirements.txt

.PHONY:test
test: devenv
	$(VENV_ACTIVATE) && pytest -m smoke --env ${ENVIRONMENT} --proxy {PROXY}

.PHONY:clean
clean:
	@rm -f $(PACKAGE)-*.zip
	@rm -rf build/
	@rm -rf dist/
	@rm -rf *.egg-info
	@rm -rf *.pyc
	@rm -rf .*_cache

.PHONY:docker/login
docker/login:
	$$(aws ecr get-login --no-include-email --region us-east-1)

.PHONY: docker/build
docker/build: docker/login
	docker build \
		--build-arg REVISION=${REVISION} \
		--build-arg BUILDTIME=${BUILDTIME} \
		-t $(IMAGE_NAME):latest .

## -
## help - this message
.PHONY: help
help: Makefile
	@echo "Application: ${APP}\n"
	@echo "Run command:\n  make <target>\n"
	@grep -E -h '^## .*' $(MAKEFILE_LIST) | sed -n 's/^##//p'  | column -t -s '-' |  sed -e 's/^/ /'
