MAKEFLAGS += --always-make

.env:
	cp -n .env.template .env || true

build: .env
	docker build -t dv-core-asta .

A2A_IMAGE ?= us-central1-docker.pkg.dev/ai2-skiff2-datavoyager/dv-a2a/dv-a2a:latest

build-a2a-server: .env
	docker build --platform linux/amd64 --no-cache -t $(A2A_IMAGE) -f asta/Dockerfile .

publish-a2a-server-image: build-a2a-server
	docker push $(A2A_IMAGE)

run-a2a-server:
	uv run dv-a2a-server

test:
	uv run pytest tests/unit/

it:
	uv run pytest --capture=no tests/integration/

build_info.json: build
	docker run --rm -i -v ${CURDIR}:/app dv-core-asta \
		python build_info.py

deploy: test it build_info.json
	docker run --rm -i -v ${CURDIR}/build_info.json:/app/build_info.json:ro --env-file .env dv-core-asta \
		modal deploy modal_deployment_script.py

# Show current version
show-version:
	@grep '^version = ' pyproject.toml | head -1 | sed 's/version = "\(.*\)"/\1/'

# Set version in pyproject.toml (requires VERSION=x.y.z)
set-version:
	@if [ -z "$(VERSION)" ]; then echo "Usage: make set-version VERSION=x.y.z"; exit 1; fi
	sed -i.bak 's/^version = ".*"/version = "$(VERSION)"/' pyproject.toml && rm pyproject.toml.bak

# Create and push git tag using current version
push-version-tag:
	@VERSION=$$(grep '^version = ' pyproject.toml | head -1 | sed 's/version = "\(.*\)"/\1/'); \
	git tag v$$VERSION && git push origin v$$VERSION && echo "Pushed tag v$$VERSION"
