95 lines
3.8 KiB
Makefile
95 lines
3.8 KiB
Makefile
# ╔══════════════════════════════════════════════════════════════════════╗
|
|
# ║ Knowledge Base - Justfile ║
|
|
# ║ Modular workspace orchestration ║
|
|
# ║ Features: CLI, MCP, Nickel, NuShell Scripts ║
|
|
# ╚══════════════════════════════════════════════════════════════════════╝
|
|
|
|
# Import feature-specific modules
|
|
mod build "justfiles/build.just" # Build recipes (kogral-core, kogral-cli, kogral-mcp)
|
|
mod test "justfiles/test.just" # Test suite (unit, integration, docs)
|
|
mod dev "justfiles/dev.just" # Development tools (fmt, lint, watch, docs)
|
|
mod ci "justfiles/ci.just" # CI/CD pipeline (validate, test, build)
|
|
mod nickel "justfiles/nickel.just" # Nickel integration (schema validation, export)
|
|
mod docs "justfiles/docs.just" # Documentation (mdBook build, serve)
|
|
mod scripts "justfiles/scripts.just" # NuShell scripts management
|
|
|
|
# === ORCHESTRATION RECIPES ===
|
|
|
|
# Default: show available commands
|
|
default:
|
|
@just --list
|
|
|
|
# Full development workflow
|
|
[doc("Run check + fmt + lint + test")]
|
|
check-all:
|
|
@just dev::fmt-check
|
|
@just dev::lint-all
|
|
@just test::all
|
|
|
|
# Full CI workflow (format + lint + test + build all variants)
|
|
[doc("Complete CI pipeline: format + lint + test + build")]
|
|
ci-full:
|
|
@just ci::check
|
|
@just ci::test-all
|
|
@just build::all
|
|
|
|
# Quick start development environment
|
|
[doc("Quick dev setup: build default + start watching")]
|
|
dev-start:
|
|
@just dev::build
|
|
@just dev::watch
|
|
|
|
# Build documentation and serve locally
|
|
[doc("Build and serve mdBook documentation")]
|
|
docs-serve:
|
|
@just docs::serve
|
|
|
|
# Validate Nickel schemas
|
|
[doc("Validate all Nickel configuration schemas")]
|
|
validate-schemas:
|
|
@just nickel::validate-all
|
|
|
|
# === MODULAR HELP ===
|
|
|
|
# Show help by module: just help build, just help test, etc
|
|
[doc("Show help for a specific module")]
|
|
help MODULE="":
|
|
@if [ -z "{{ MODULE }}" ]; then \
|
|
echo "KNOWLEDGE BASE - MODULAR JUSTFILE HELP"; \
|
|
echo ""; \
|
|
echo "Available modules:"; \
|
|
echo " just help build Build commands"; \
|
|
echo " just help test Test commands"; \
|
|
echo " just help dev Development utilities"; \
|
|
echo " just help ci CI/CD pipeline"; \
|
|
echo " just help nickel Nickel schema tools"; \
|
|
echo " just help docs Documentation tools"; \
|
|
echo " just help scripts NuShell scripts"; \
|
|
echo ""; \
|
|
echo "Orchestration:"; \
|
|
echo " just check-all Format check + lint + test"; \
|
|
echo " just ci-full Full CI pipeline"; \
|
|
echo " just dev-start Quick dev setup"; \
|
|
echo " just docs-serve Build and serve docs"; \
|
|
echo " just validate-schemas Validate Nickel schemas"; \
|
|
echo ""; \
|
|
echo "Use: just help <module> for details"; \
|
|
elif [ "{{ MODULE }}" = "build" ]; then \
|
|
just build::help; \
|
|
elif [ "{{ MODULE }}" = "test" ]; then \
|
|
just test::help; \
|
|
elif [ "{{ MODULE }}" = "dev" ]; then \
|
|
just dev::help; \
|
|
elif [ "{{ MODULE }}" = "ci" ]; then \
|
|
just ci::help; \
|
|
elif [ "{{ MODULE }}" = "nickel" ]; then \
|
|
just nickel::help; \
|
|
elif [ "{{ MODULE }}" = "docs" ]; then \
|
|
just docs::help; \
|
|
elif [ "{{ MODULE }}" = "scripts" ]; then \
|
|
just scripts::help; \
|
|
else \
|
|
echo "Unknown module: {{ MODULE }}"; \
|
|
echo "Available: build, test, dev, ci, nickel, docs, scripts"; \
|
|
fi
|