source_files  = payoneer_status_sync/ tests/ index.py dev.py

# Environment

env:
	poetry install --no-root

clean:
	poetry env remove $$(poetry env info --executable)

# Development

dev: env
	poetry run python -m dev

lint: env
	poetry run ruff check $(source_files)
	poetry run ruff format --check $(source_files)
	poetry run mypy $(source_files)

format: env
	poetry run ruff format $(source_files)

deploy:
	docker compose up --build deploy

# Tests

test: env
	poetry run python -m pytest tests

test_coverage: env
	poetry run python -m pytest tests \
		--cov \
		--cov-report xml:build/coverage.xml \
		--cov-report term \
		--junitxml=build/pyunit.xml

# Jenkins

unit_lint: lint test_coverage

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

ci_unit_lint_clean:
	rm -rf build
