.PHONY: lint fmt unit test_integration docker_fmt ci_unit_lint ci_unit_lint_clean ci_test_integration ci_clean_integration

lint: ## Run code linters
	uv run ruff check datadog_tools tests
	uv run ruff format datadog_tools tests --check

fmt: ## Run code formatters
	uv run ruff check datadog_tools tests --fix
	uv run ruff format datadog_tools tests

unit:
	uv run pytest -v tests/unit/

test_integration:
	uv run pytest -v tests/integration/

docker_fmt:
	docker compose run --rm --entrypoint uv unit-lint run ruff check datadog_tools tests --fix
	docker compose run --rm --entrypoint uv unit-lint run ruff format datadog_tools tests

ci_unit_lint: ci_unit_lint_clean # Run lint and unit tests in CI/CD
	mkdir -p build
	chmod a+w build
	docker compose run --rm --build unit-lint

ci_unit_lint_clean: # Teardown lint and unit tests in CI/CD
	rm -rf build

ci_test_integration: ci_clean_integration
	mkdir -p build
	chmod a+w build
	docker compose run --rm --build integration-test

ci_clean_integration:
	rm -rf build
