# ===== Konfiguration =====
include .env

IMAGE_NAME=$(REGISTRY_URL)/public/drone-publish-tool
IMAGE_FULL=$(IMAGE_NAME):$(VERSION_TAG)

# ===== Targets =====

.PHONY: all build push sign release clean

all: build push sign release

build:
	@echo "=== Building $(IMAGE_FULL) ==="
	docker build -t $(IMAGE_FULL) .
	docker tag $(IMAGE_FULL) $(IMAGE_NAME):latest

push:
	@echo "=== Pushing images to $(REGISTRY_URL) ==="
	@docker login $(REGISTRY_URL) -u "$(REGISTRY_USER)" -p "$(REGISTRY_PASS)"
	docker push $(IMAGE_FULL)
	docker push $(IMAGE_NAME):latest

sign:
	@echo "=== Signing $(IMAGE_FULL) ==="
	@if [ -z "$(COSIGN_KEY)" ]; then echo "❌ Kein COSIGN_KEY definiert"; exit 1; fi
	docker run --rm -v $(COSIGN_KEY):/key:ro \
		-e COSIGN_PASSWORD="$(COSIGN_PASSWORD)" \
		gcr.io/projectsigstore/cosign:v2.4.0 \
		sign --yes --key /key $(IMAGE_FULL)

release:
	@echo "=== Creating Gitea Release $(VERSION_TAG) ==="
	curl -s -X POST "$(GITEA_URL)/api/v1/repos/$(GITEA_REPO)/releases" \
		-H "Authorization: token $(GITEA_TOKEN)" \
		-H "Content-Type: application/json" \
		-d "{\"tag_name\":\"$(VERSION_TAG)\",\"name\":\"Release $(VERSION_TAG)\",\"body\":\"Automatischer Release für $(VERSION_TAG)\\n\\nImage: $(IMAGE_FULL)\",\"draft\":false,\"prerelease\":false}"

clean:
	@echo "=== Cleaning up local images ==="
	-docker rmi $(IMAGE_FULL) $(IMAGE_NAME):latest 2>/dev/null || true
