42 lines
1.3 KiB
Makefile
42 lines
1.3 KiB
Makefile
# ===== 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
|