-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
74 lines (68 loc) · 3.05 KB
/
Copy pathMakefile
File metadata and controls
74 lines (68 loc) · 3.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# ==============================================================================
# Pavis Workspace Makefile
# ==============================================================================
# This Makefile uses a modular approach. Specific task implementations are
# located in the make/ directory.
# Default target
.PHONY: all
all: build
# Include sub-modules
include make/build.mk
include make/test.mk
include make/e2e.mk
include make/bench.mk
include make/clean.mk
include make/docs.mk
# High-level Orchestration
.PHONY: ci ci-local help
# CI pipeline (format check, lint, shellcheck, unit tests)
ci: fmt-check lint shellcheck test
# Local CI pipeline (format, lint, shellcheck, unit tests)
ci-local: fmt lint shellcheck test
# Show available commands
help:
@echo "Pavis Build System"
@echo ""
@echo "Build Commands:"
@echo " build - Build debug workspace"
@echo " binary-build - Build release binaries (CRATE=workspace|pavis|relay|... [BIN=name])"
@echo " docker-build - Build docker image (IMAGE=pavis|relay|bench-upstream, MODE=local|ci)"
@echo " docker-images - Build all docker images (MODE=local|ci)"
@echo " coverage-report - Generate coverage markdown at ./docs/coverage.md"
@echo " run-pavis - Run proxy engine"
@echo " run-relay - Run relay service"
@echo " run-upstream - Run pavis-upstream fixture (requires TLS_CERT_FILE/TLS_KEY_FILE)"
@echo " fmt - Format code"
@echo " lint - Run clippy"
@echo " shellcheck - Run shellcheck on bash scripts"
@echo ""
@echo "Test Commands:"
@echo " test - Run unit tests"
@echo " e2e - Run end-to-end tests"
@echo " coverage-html - Generate coverage report"
@echo ""
@echo "Benchmarking:"
@echo " Standalone Mode (Docker Compose):"
@echo " bench-standalone - Run benchmarks (PROXY=pavis CASE=\"...\" DRY_RUN=1)"
@echo " bench-standalone-build - Build benchmark images for standalone mode"
@echo " bench-standalone-down - Stop and cleanup benchmark containers"
@echo ""
@echo " System Mode (Kubernetes):"
@echo " bench-system - Run system mode benchmarks (PROXY=pavis CASE=\"...\")"
@echo " bench-system-build - Build Docker images for system mode"
@echo " bench-system-down - Cleanup system mode environment (delete kind cluster)"
@echo ""
@echo " Shared:"
@echo " bench-report - Aggregate results and generate markdown report"
@echo ""
@echo " Aliases (backward compatibility):"
@echo " bench - Alias for bench-standalone"
@echo " bench-build - Alias for bench-standalone-build"
@echo " bench-down - Alias for bench-standalone-down"
@echo ""
@echo "Maintenance:"
@echo " clean - Cleanup build artifacts and generated files"
@echo " clean-docker - Remove Docker build cache and containers"
@echo " clean-all - Remove all artifacts, cache, and Docker resources"
@echo " docs - Generate documentation"
@echo " ci - Run full CI suite"