Lint fixes and testing workflow actions
This commit is contained in:
56
Makefile
56
Makefile
@@ -1,4 +1,4 @@
|
||||
.PHONY: build clean test run-server run-cli help
|
||||
.PHONY: build clean test lint lintfix run-server run-cli help
|
||||
|
||||
# Build both server and CLI
|
||||
build:
|
||||
@@ -29,10 +29,11 @@ clean:
|
||||
@rm -f bin/whatshook*
|
||||
@echo "Clean complete!"
|
||||
|
||||
# Run tests
|
||||
# Run tests with coverage
|
||||
test:
|
||||
@echo "Running tests..."
|
||||
@go test ./...
|
||||
@go test -v -coverprofile=coverage.out -covermode=atomic ./...
|
||||
@echo "Coverage report saved to coverage.out"
|
||||
|
||||
# Run server (requires config.json)
|
||||
run-server:
|
||||
@@ -49,6 +50,51 @@ deps:
|
||||
@go mod tidy
|
||||
@echo "Dependencies installed!"
|
||||
|
||||
|
||||
release-version: ## Create and push a release with specific version (use: make release-version VERSION=v1.2.3)
|
||||
@if [ -z "$(VERSION)" ]; then \
|
||||
echo "Error: VERSION is required. Usage: make release-version VERSION=v1.2.3"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@version="$(VERSION)"; \
|
||||
if ! echo "$$version" | grep -q "^v"; then \
|
||||
version="v$$version"; \
|
||||
fi; \
|
||||
echo "Creating release: $$version"; \
|
||||
latest_tag=$$(git describe --tags --abbrev=0 2>/dev/null || echo ""); \
|
||||
if [ -z "$$latest_tag" ]; then \
|
||||
commit_logs=$$(git log --pretty=format:"- %s" --no-merges); \
|
||||
else \
|
||||
commit_logs=$$(git log "$${latest_tag}..HEAD" --pretty=format:"- %s" --no-merges); \
|
||||
fi; \
|
||||
if [ -z "$$commit_logs" ]; then \
|
||||
tag_message="Release $$version"; \
|
||||
else \
|
||||
tag_message="Release $$version\n\n$$commit_logs"; \
|
||||
fi; \
|
||||
git tag -a "$$version" -m "$$tag_message"; \
|
||||
git push origin "$$version"; \
|
||||
echo "Tag $$version created and pushed to remote repository."
|
||||
|
||||
|
||||
lint: ## Run linter
|
||||
@echo "Running linter..."
|
||||
@if command -v golangci-lint > /dev/null; then \
|
||||
golangci-lint run --config=.golangci.json; \
|
||||
else \
|
||||
echo "golangci-lint not installed. Install with: go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
lintfix: ## Run linter
|
||||
@echo "Running linter..."
|
||||
@if command -v golangci-lint > /dev/null; then \
|
||||
golangci-lint run --config=.golangci.json --fix; \
|
||||
else \
|
||||
echo "golangci-lint not installed. Install with: go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
# Help
|
||||
help:
|
||||
@echo "WhatsHooked Makefile"
|
||||
@@ -58,7 +104,9 @@ help:
|
||||
@echo " make build-server - Build server only"
|
||||
@echo " make build-cli - Build CLI only"
|
||||
@echo " make clean - Remove build artifacts (preserves bin directory)"
|
||||
@echo " make test - Run tests"
|
||||
@echo " make test - Run tests with coverage"
|
||||
@echo " make lint - Run linter"
|
||||
@echo " make lintfix - Run linter with auto-fix"
|
||||
@echo " make run-server - Run server (requires config.json)"
|
||||
@echo " make run-cli ARGS='health' - Run CLI with arguments"
|
||||
@echo " make deps - Install dependencies"
|
||||
|
||||
Reference in New Issue
Block a user