# Add any tasks that are not dependent on files to the .PHONY list.
.PHONY: pip_dev test_unit clean docker_unit_lint ci_unit_lint_clean ci_unit_lint

env pip_dev:
	python3 -m venv env
	env/bin/pip3 install --upgrade pip
	env/bin/pip3 install -r requirements-dev.txt

test_unit: env
	env/bin/py.test tests \
		--cov-report xml \
		--junitxml=pyunit.xml

lint: env
	env/bin/flake8 accounting/ tests/
	
clean:
	rm -rf env

docker_unit_lint:
	docker compose up \
		--build \
		--exit-code-from unit-lint \
		--abort-on-container-exit \
		--remove-orphans \
		unit-lint

down_unit_lint:
	docker compose down unit-lint --remove-orphans

ci_unit_lint: ci_unit_lint_clean
	mkdir -p build
	chmod a+w build
	make docker_unit_lint

ci_unit_lint_clean: down_unit_lint
	rm -rf build
