registry/Makefile
adam jones 9d9a02c57f
Database implementation cleanup (#335)
## Motivation and Context

The database logic was getting a bit unwieldy and fragile - especially
because business logic that should really have lived at the registry
service level was being pushed into the persistence level.

This PR tightens the interface, simplifies the code there, as well as
rips out a bunch of mocks etc. we don't need.

## How Has This Been Tested?

Locally everything works

## Breaking Changes

The list endpoint was surprisingly always filtering for isLatest only,
which seems like a bug? I have removed this filter.
2025-09-02 13:37:28 +01:00

70 lines
2.2 KiB
Makefile

.PHONY: help build test test-unit test-integration test-endpoints test-publish test-all lint lint-fix validate validate-schemas validate-examples check dev-local dev-compose clean publisher
# Default target
help: ## Show this help message
@echo "Available targets:"
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " %-20s %s\n", $$1, $$2}'
# Build targets
build: ## Build the registry application
go build -o bin/registry ./cmd/registry
publisher: ## Build the publisher tool
cd cmd/publisher && ./build.sh
# Test targets
test-unit: ## Run unit tests with coverage
go test -v -race -coverprofile=coverage.out -covermode=atomic -coverpkg=./internal/... ./internal/...
go tool cover -html=coverage.out -o coverage.html
@echo "Coverage report generated: coverage.html"
test: ## Run unit tests (use 'make test-all' to run all tests)
@echo "⚠️ Running unit tests only. Use 'make test-all' to run both unit and integration tests."
@$(MAKE) test-unit
test-integration: ## Run integration tests
./tests/integration/run.sh
test-endpoints: ## Test API endpoints (requires running server)
./scripts/test_endpoints.sh
test-publish: ## Test publish endpoint (requires BEARER_TOKEN env var)
./scripts/test_publish.sh
test-all: test-unit test-integration ## Run all tests (unit and integration)
# Validation targets
validate-schemas: ## Validate JSON schemas
./tools/validate-schemas.sh
validate-examples: ## Validate examples against schemas
./tools/validate-examples.sh
validate: validate-schemas validate-examples ## Run all validation checks
# Lint targets
lint: ## Run linter (includes formatting)
golangci-lint run --timeout=5m
lint-fix: ## Run linter with auto-fix (includes formatting)
golangci-lint run --fix --timeout=5m
# Combined targets
check: lint validate test-all ## Run all checks (lint, validate, unit tests)
@echo "All checks passed!"
# Development targets
dev-compose: ## Start development environment with Docker Compose (builds image automatically)
docker compose up --build
dev-local: ## Run registry locally
go run ./cmd/registry
# Cleanup
clean: ## Clean build artifacts and coverage files
rm -rf bin
rm -f coverage.out coverage.html
cd cmd/publisher && rm -f publisher
.DEFAULT_GOAL := help