make lint and make style now walk .agents/skills/*/scripts/*.sh, so a skill helper is held to the same shellcheck pass as the sandbox, the tests and the installer. LLM-Generated: true
44 lines
1.7 KiB
Makefile
44 lines
1.7 KiB
Makefile
# ai-sandbox -- development tasks. Everything runs with the tools already on this
|
|
# machine plus podman; nothing needs to be installed system-wide.
|
|
SHELL := /bin/bash
|
|
BIN := bin/ai-sandbox
|
|
BINS := bin/ai-sandbox bin/ai-sandbox-autophase
|
|
SHELLCHECK_IMAGE := docker.io/koalaman/shellcheck:stable
|
|
|
|
.PHONY: help test e2e check lint style doctor build clean-demo all
|
|
help: ## show this help
|
|
@grep -hE '^[a-zA-Z_-]+:.*?## ' $(MAKEFILE_LIST) | awk -F':.*?## ' '{printf " %-12s %s\n", $$1, $$2}'
|
|
|
|
|
|
test: ## unit tests only (no containers, no network)
|
|
./tests/run.sh
|
|
|
|
e2e: ## everything, including real containers and real egress tests
|
|
./tests/run.sh --e2e
|
|
|
|
check: lint test ## lint + unit tests (what CI would run)
|
|
|
|
lint: ## shellcheck every shell file, in a container (nothing installed locally)
|
|
@podman run --rm -v "$(CURDIR):/src:ro,z" -w /src $(SHELLCHECK_IMAGE) \
|
|
--severity=warning --shell=bash --exclude=SC1091 \
|
|
$(BINS) install.sh contrib/ai-sandbox.bash \
|
|
tests/run.sh tests/lib.sh tests/spike_network.sh \
|
|
$$(ls tests/unit/*.sh tests/e2e/*.sh tests/fixtures/*.sh tests/fixtures/phase-lib/*.sh) \
|
|
$$(ls .agents/skills/*/scripts/*.sh 2>/dev/null) \
|
|
&& echo "shellcheck: clean"
|
|
|
|
style: ## bash-style syntax check of every shell file (fast, no deps)
|
|
@for f in $(BINS) install.sh contrib/*.bash tests/*.sh tests/unit/*.sh tests/e2e/*.sh \
|
|
tests/fixtures/*.sh tests/fixtures/phase-lib/*.sh .agents/skills/*/scripts/*.sh; do \
|
|
[ -f "$$f" ] || continue; bash -n "$$f" || exit 1; \
|
|
done; echo "bash -n: clean"
|
|
|
|
doctor: ## verify this machine can run the sandbox
|
|
@$(BIN) doctor
|
|
|
|
build: ## build the sandbox and gate images
|
|
@$(BIN) build --gate
|
|
|
|
clean-demo: ## remove sandbox containers, gates and stale session files
|
|
@$(BIN) clean --all
|