|
| 1 | +COMPOSE_FILE ?= compose.yml |
| 2 | + |
| 3 | +# Self-Documented Makefile |
| 4 | +.PHONY: help |
| 5 | +help: |
| 6 | + @grep -E '^[a-zA-Z_0-9-]+(-%)?:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' |
| 7 | + |
| 8 | +clean: ## Clean up all resources |
| 9 | + @echo "Stopping and removing all containers..." |
| 10 | + @docker buildx rm buildcage 2>/dev/null || true |
| 11 | + @docker compose -f compose.yml -f compose.test.yml down -v --rmi all |
| 12 | + @docker rmi buildcage-test 2>/dev/null || true |
| 13 | + |
| 14 | +run_audit_mode: ## Start in audit mode |
| 15 | + @echo "Starting buildcage in AUDIT mode..." |
| 16 | + @COMPOSE_FILE=$(COMPOSE_FILE) \ |
| 17 | + PROXY_MODE=audit \ |
| 18 | + ALLOWED_HTTP_DOMAINS="" \ |
| 19 | + ALLOWED_HTTPS_DOMAINS="" \ |
| 20 | + docker compose up -d --wait --build |
| 21 | + @docker buildx rm buildcage 2>/dev/null || true |
| 22 | + @echo "Creating buildx builder..." |
| 23 | + @docker buildx create --bootstrap \ |
| 24 | + --name buildcage \ |
| 25 | + --driver remote tcp://localhost:1234 |
| 26 | + |
| 27 | +run_restrict_mode: ## Start in restrict mode |
| 28 | + @echo "Starting buildcage in RESTRICT mode..." |
| 29 | + @COMPOSE_FILE=$(COMPOSE_FILE) \ |
| 30 | + PROXY_MODE=restrict \ |
| 31 | + ALLOWED_HTTP_DOMAINS="$${ALLOWED_HTTP_DOMAINS:-}" \ |
| 32 | + ALLOWED_HTTPS_DOMAINS="$${ALLOWED_HTTPS_DOMAINS:-github.com,registry.npmjs.org,api.github.com,objects.githubusercontent.com,httpbin.org,deb.debian.org,*.githubusercontent.com}" \ |
| 33 | + docker compose up -d --wait --build |
| 34 | + @docker buildx rm buildcage 2>/dev/null || true |
| 35 | + @echo "Creating buildx builder..." |
| 36 | + @docker buildx create --bootstrap \ |
| 37 | + --name buildcage \ |
| 38 | + --driver remote tcp://localhost:1234 |
| 39 | + |
| 40 | +.PHONY: test_restrict_mode |
| 41 | +test_restrict_mode: ## Run restrict mode tests |
| 42 | + @echo "Running restrict mode tests..." |
| 43 | + @COMPOSE_FILE=compose.yml:compose.test.yml \ |
| 44 | + $(MAKE) run_restrict_mode |
| 45 | + @docker buildx build --no-cache \ |
| 46 | + --builder buildcage \ |
| 47 | + --platform linux/arm64 \ |
| 48 | + --progress=plain -f test/Dockerfile.restrict test/ \ |
| 49 | + --load -t buildcage-test |
| 50 | + @./report/report.sh || true |
| 51 | + @./test/assert-restrict-mode.sh |
| 52 | + @$(MAKE) clean |
| 53 | + |
| 54 | +.PHONY: test_audit_mode |
| 55 | +test_audit_mode: ## Run audit mode tests |
| 56 | + @echo "Running audit mode tests..." |
| 57 | + @COMPOSE_FILE=compose.yml:compose.test.yml \ |
| 58 | + $(MAKE) run_audit_mode |
| 59 | + @docker buildx build --no-cache \ |
| 60 | + --builder buildcage \ |
| 61 | + --platform linux/arm64 \ |
| 62 | + --progress=plain -f test/Dockerfile.audit test/ \ |
| 63 | + --load -t buildcage-test |
| 64 | + @./report/report.sh || true |
| 65 | + @./test/assert-audit-mode.sh |
| 66 | + @$(MAKE) clean |
0 commit comments