[env]
GITHUB_REPO = "seanchatmangpt/ggen"
GITHUB_API = "https://api.github.com"
GITHUB_PAGES_URL = "https://seanchatmangpt.github.io/ggen"
[env.ACT]
ACT_CONTAINER_ARCH = "linux/amd64"
ACT_PLATFORM = "ubuntu-latest=catthehacker/ubuntu:act-latest"
ACT_MEMORY = "2g"
ACT_CPUS = "2"
[tasks.check]
description = "Check code without building"
command = "cargo"
args = ["check"]
[tasks.build]
description = "Build in debug mode"
command = "cargo"
args = ["build"]
[tasks.build-release]
description = "Build in release mode"
command = "cargo"
args = ["build", "--release"]
[tasks.clean]
description = "Clean build artifacts"
command = "cargo"
args = ["clean"]
[tasks.fmt]
description = "Format code"
command = "cargo"
args = ["fmt", "--all"]
[tasks.lint]
description = "Run clippy with strict settings"
command = "cargo"
args = ["clippy", "--all-targets", "--all-features", "--", "-D", "warnings"]
[tasks.test]
description = "Run all tests"
command = "cargo"
args = ["test", "--workspace", "--no-default-features"]
workspace = false
[tasks.test-unit]
description = "Unit tests only"
command = "cargo"
args = ["test", "--lib"]
[tasks.test-integration]
description = "Integration tests only"
command = "cargo"
args = ["test", "--test"]
[tasks.test-testcontainers]
description = "Run testcontainers production readiness validation tests"
command = "cargo"
args = ["test", "--package", "ggen-cli-lib", "--test", "integration"]
env = { "RUST_LOG" = "info" }
[tasks.test-cleanroom]
description = "Run cleanroom production tests with testcontainers"
workspace = false
command = "cargo"
args = [
"test",
"--package",
"ggen-cli-lib",
"--test",
"integration_tests",
"--",
"testcontainers_cleanroom",
]
env = { "RUST_LOG" = "info" }
[tasks.test-cleanroom-crate]
description = "Run tests for the cleanroom crate"
workspace = false
command = "cargo"
args = ["test", "--package", "cleanroom"]
env = { "RUST_LOG" = "info" }
[tasks.lint-cleanroom]
description = "Run clippy on cleanroom crate"
workspace = false
command = "cargo"
args = ["clippy", "--package", "cleanroom", "--", "-D", "warnings"]
[tasks.cleanroom-validate]
description = "Validate cleanroom implementation and integration"
workspace = false
dependencies = ["test-cleanroom-crate", "test-cleanroom", "lint-cleanroom"]
[tasks.cleanroom-slo-check]
description = "Check cleanroom performance SLOs"
workspace = false
command = "cargo"
args = [
"test",
"--package",
"cleanroom",
"--release",
"--",
"--nocapture",
"slo",
]
env = { "RUST_LOG" = "info" }
[tasks.cleanroom-profile]
description = "Profile cleanroom performance"
workspace = false
command = "cargo"
args = ["flamegraph", "--package", "cleanroom", "--bin", "cleanroom-bench"]
[tasks.production-readiness]
description = "Comprehensive production readiness validation with testcontainers"
workspace = false
dependencies = [
"test-testcontainers",
"test-cleanroom",
"cleanroom-validate",
"test-unit",
"test-integration",
"lint",
"build-release",
]
[tasks.production-readiness-script]
description = "Run production readiness validation script"
workspace = false
command = "./scripts/production-readiness-validation.sh"
args = ["--full"]
[tasks.test-live]
description = "Run tests with live LLM integrations (requires API keys)"
command = "cargo"
args = ["test", "--features", "live-llm-tests,all-integrations"]
[tasks.test-ollama]
description = "Run Ollama integration tests (requires Ollama running)"
command = "cargo"
args = [
"test",
"--features",
"ollama-integration",
"--test",
"ollama_integration",
"-p",
"ggen-ai",
]
[tasks.test-openai]
description = "Run OpenAI integration tests (requires OPENAI_API_KEY)"
command = "cargo"
args = ["test", "--features", "openai-integration,live-llm-tests"]
env = { "RUST_LOG" = "info" }
[tasks.test-anthropic]
description = "Run Anthropic integration tests (requires ANTHROPIC_API_KEY)"
command = "cargo"
args = ["test", "--features", "anthropic-integration,live-llm-tests"]
env = { "RUST_LOG" = "info" }
[tasks.test-ollama-performance]
description = "Run Ollama performance and stress tests"
workspace = false
command = "cargo"
args = [
"test",
"--package",
"ggen-ai",
"--features",
"ollama-integration",
"--test",
"ollama_performance",
]
[tasks.test-ollama-resilience]
description = "Run Ollama resilience and error recovery tests"
workspace = false
command = "cargo"
args = [
"test",
"--package",
"ggen-ai",
"--features",
"ollama-integration",
"--test",
"ollama_resilience",
]
[tasks.test-ollama-all]
description = "Run all Ollama integration tests (integration, performance, resilience)"
workspace = false
dependencies = [
"test-ollama",
"test-ollama-performance",
"test-ollama-resilience",
]
[tasks.validate-ollama]
description = "Validate Ollama integration (checks service, model, and runs tests)"
workspace = false
command = "./scripts/validate-ollama.sh"
[tasks.act-list]
description = "List available GitHub Actions workflows"
workspace = false
command = "act"
args = ["--list"]
[tasks.act-lint]
description = "Run lint workflow locally with act"
workspace = false
command = "act"
args = [
"--container-architecture",
"${ACT_CONTAINER_ARCH}",
"--platform",
"${ACT_PLATFORM}",
"--memory",
"${ACT_MEMORY}",
"--cpus",
"${ACT_CPUS}",
"-j",
"lint",
]
[tasks.act-test]
description = "Run test workflow locally with act"
workspace = false
command = "act"
args = [
"--container-architecture",
"${ACT_CONTAINER_ARCH}",
"--platform",
"${ACT_PLATFORM}",
"--memory",
"${ACT_MEMORY}",
"--cpus",
"${ACT_CPUS}",
"-j",
"test",
]
[tasks.act-build]
description = "Run build workflow locally with act"
workspace = false
command = "act"
args = [
"--container-architecture",
"${ACT_CONTAINER_ARCH}",
"--platform",
"${ACT_PLATFORM}",
"--memory",
"${ACT_MEMORY}",
"--cpus",
"${ACT_CPUS}",
"-j",
"build",
]
[tasks.act-audit]
description = "Run security audit workflow locally with act"
workspace = false
command = "act"
args = [
"--container-architecture",
"${ACT_CONTAINER_ARCH}",
"--platform",
"${ACT_PLATFORM}",
"--memory",
"${ACT_MEMORY}",
"--cpus",
"${ACT_CPUS}",
"-j",
"audit",
]
[tasks.act-all]
description = "Run all workflows locally with act (lightweight)"
workspace = false
command = "act"
args = [
"--container-architecture",
"${ACT_CONTAINER_ARCH}",
"--platform",
"${ACT_PLATFORM}",
"--memory",
"${ACT_MEMORY}",
"--cpus",
"${ACT_CPUS}",
"--matrix",
]
[tasks.act-release]
description = "Run release workflows locally with act (parallel execution)"
workspace = false
script_runner = "@shell"
script = '''
./scripts/act-release.sh
'''
[tasks.act-release-dry-run]
description = "Show what act-release would execute without running"
workspace = false
script_runner = "@shell"
script = '''
./scripts/act-release.sh --dry-run
'''
[tasks.act-release-workflow-only]
description = "Run only the release workflow with act"
workspace = false
script_runner = "@shell"
script = '''
./scripts/act-release.sh --workflow-only
'''
[tasks.act-release-homebrew-only]
description = "Run only the homebrew-release workflow with act"
workspace = false
script_runner = "@shell"
script = '''
./scripts/act-release.sh --homebrew-only
'''
[tasks.act-release-debug]
description = "Run release workflows with debug output"
workspace = false
script_runner = "@shell"
script = '''
DEBUG=true ./scripts/act-release.sh
'''
[tasks.act-release-json]
description = "Run release workflows with JSON output"
workspace = false
script_runner = "@shell"
script = '''
./scripts/act-release.sh --json
'''
[tasks.act-release-retry]
description = "Run release workflows with retry logic"
workspace = false
script_runner = "@shell"
script = '''
./scripts/act-release.sh --retry-failed
'''
[tasks.act-release-metrics]
description = "Run release workflows with metrics collection"
workspace = false
script_runner = "@shell"
script = '''
./scripts/act-release.sh --metrics
'''
[tasks.act-release-timeout]
description = "Run release workflows with custom timeout"
workspace = false
script_runner = "@shell"
script = '''
./scripts/act-release.sh --timeout 3600
'''
[tasks.act-release-verbose]
description = "Run release workflows with verbose output"
workspace = false
script_runner = "@shell"
script = '''
./scripts/act-release.sh --verbose
'''
[tasks.act-parallel]
description = "Run multiple workflows in parallel"
workspace = false
dependencies = ["act-lint", "act-test", "act-build"]
[tasks.act-cleanup]
description = "Clean up act containers and images"
workspace = false
script = '''
echo "🧹 Cleaning up act containers..."
docker ps -a --filter "label=act" --format "table {{.ID}}\t{{.Status}}\t{{.Names}}" | grep act || true
docker container prune -f --filter "label=act" || true
docker image prune -f --filter "label=act" || true
echo "✅ Act cleanup complete"
'''
[tasks.act-lint-light]
description = "Run lint workflow locally with act (lightweight, no cargo-make)"
workspace = false
command = "act"
args = [
"--container-architecture",
"${ACT_CONTAINER_ARCH}",
"--platform",
"${ACT_PLATFORM}",
"--memory",
"1g",
"--cpus",
"1",
"-W",
".github/workflows/lint.yml",
"-j",
"lint",
"--artifact-server-path",
"/tmp/act-artifacts",
]
[tasks.act-test-light]
description = "Run test workflow locally with act (lightweight)"
workspace = false
command = "act"
args = [
"--container-architecture",
"${ACT_CONTAINER_ARCH}",
"--platform",
"${ACT_PLATFORM}",
"--memory",
"1g",
"--cpus",
"1",
"-W",
".github/workflows/test.yml",
"-j",
"test",
"--artifact-server-path",
"/tmp/act-artifacts",
]
[tasks.act-build-light]
description = "Run build workflow locally with act (lightweight)"
workspace = false
command = "act"
args = [
"--container-architecture",
"${ACT_CONTAINER_ARCH}",
"--platform",
"${ACT_PLATFORM}",
"--memory",
"1g",
"--cpus",
"1",
"-W",
".github/workflows/build.yml",
"-j",
"build",
"--artifact-server-path",
"/tmp/act-artifacts",
]
[tasks.act-dry-run]
description = "Dry run all workflows (no execution)"
workspace = false
command = "act"
args = [
"--container-architecture",
"${ACT_CONTAINER_ARCH}",
"--platform",
"${ACT_PLATFORM}",
"--dryrun",
]
[tasks.act-status]
description = "Check act installation and Docker status"
workspace = false
script = '''
echo "🔍 Checking act installation..."
act --version || echo "❌ act not installed"
echo ""
echo "🐳 Checking Docker status..."
docker --version || echo "❌ Docker not available"
docker ps > /dev/null 2>&1 && echo "✅ Docker daemon running" || echo "❌ Docker daemon not running"
echo ""
echo "📊 Docker resource usage:"
docker system df
'''
[tasks.test-bdd]
description = "Run BDD tests (Cucumber feature tests)"
workspace = false
command = "cargo"
args = ["test", "--test", "bdd"]
[tasks.test-bdd-feature]
description = "Run specific BDD feature (usage: cargo make test-bdd-feature FEATURE=graph)"
workspace = false
command = "cargo"
args = ["test", "--test", "bdd", "test_${FEATURE}_features"]
[tasks.test-bdd-verbose]
description = "Run BDD tests with verbose output"
workspace = false
command = "cargo"
args = ["test", "--test", "bdd", "--", "--nocapture"]
[tasks.audit]
description = "Security audit"
command = "cargo"
args = ["audit"]
workspace = false
[tasks.audit-outdated]
description = "Check for outdated dependencies"
command = "cargo"
args = ["outdated"]
workspace = false
[tasks.audit-unused]
description = "Check for unused dependencies (requires nightly)"
command = "cargo"
args = ["+nightly", "udeps"]
workspace = false
[tasks.audit-deny]
description = "Comprehensive dependency audit with cargo-deny"
command = "cargo"
args = ["deny", "check"]
workspace = false
[tasks.audit-all]
description = "Run all dependency audits"
dependencies = ["audit", "audit-outdated", "audit-deny"]
workspace = false
[tasks.format]
description = "Format code"
command = "cargo"
args = ["fmt", "--all"]
[tasks.clippy-ci-flow]
description = "Run clippy with CI-friendly settings"
command = "cargo"
args = ["clippy", "--all-targets", "--all-features", "--", "-D", "warnings"]
[tasks.test-verbose]
description = "Run tests with verbose output"
workspace = false
command = "cargo"
args = ["test", "--workspace", "--", "--nocapture"]
[tasks.test-proptest]
description = "Run property-based tests with proptest"
command = "cargo"
args = ["test", "--workspace", "--features", "proptest", "--", "--nocapture"]
[tasks.test-proptest-single]
description = "Run property-based tests for a single package"
command = "cargo"
args = [
"test",
"--package",
"${PACKAGE}",
"--features",
"proptest",
"--",
"--nocapture",
]
[tasks.test-proptest-parallel]
description = "Run property-based tests in parallel"
command = "cargo"
args = [
"test",
"--workspace",
"--features",
"proptest",
"--",
"--test-threads",
"4",
"--nocapture",
]
[tasks.docs-build]
description = "Build documentation with mdbook"
workspace = false
command = "mdbook"
args = ["build", "docs"]
[tasks.docs-serve]
description = "Serve documentation locally with mdbook"
workspace = false
command = "mdbook"
args = ["serve", "docs", "--open"]
[tasks.docs-watch]
description = "Watch and rebuild documentation on changes"
workspace = false
command = "mdbook"
args = ["watch", "docs"]
[tasks.docs-clean]
description = "Clean built documentation"
workspace = false
command = "rm"
args = ["-rf", "docs/book"]
[tasks.docs-test]
description = "Test documentation build"
workspace = false
dependencies = ["docs-build"]
command = "echo"
args = ["Documentation built successfully"]
[tasks.docs-validate]
description = "Validate documentation structure and links"
workspace = false
dependencies = ["docs-build"]
command = "./scripts/docs-validate.sh"
[tasks.docs-deploy]
description = "Build and validate documentation for deployment"
workspace = false
dependencies = ["docs-clean", "docs-build", "docs-validate"]
[tasks.gh-pages-status]
description = "Check GitHub Pages configuration and deployment status via API"
workspace = false
command = "./scripts/gh-pages-status.sh"
[tasks.gh-workflow-status]
description = "Check GitHub Actions workflow status for Pages deployment"
workspace = false
command = "./scripts/gh-workflow-status.sh"
[tasks.gh-pages-compare]
description = "Compare local docs build with deployed version"
workspace = false
dependencies = ["docs-build"]
command = "./scripts/gh-pages-compare.sh"
[tasks.gh-pages-trigger]
description = "Trigger GitHub Pages deployment workflow manually"
workspace = false
command = "./scripts/gh-pages-trigger.sh"
[tasks.gh-pages-logs]
description = "View logs from latest GitHub Pages deployment"
workspace = false
command = "./scripts/gh-pages-logs.sh"
[tasks.gh-pages-setup-check]
description = "Comprehensive GitHub Pages setup validation"
workspace = false
command = "./scripts/gh-pages-setup-check.sh"
[tasks.ci]
description = "Run CI pipeline"
workspace = false
dependencies = ["format", "clippy-ci-flow", "test", "audit-all", "docs-test"]
[tasks.release]
description = "Create a release"
dependencies = ["ci", "docs-build"]
[tasks.brew-update-formula]
description = "Update Homebrew formula with SHA256 from latest release"
workspace = false
command = "./scripts/update-homebrew-formula.sh"
args = ["${1}"]
[tasks.brew-update]
alias = "brew-update-formula"
[tasks.release-brew]
description = "Complete release workflow with Homebrew update"
workspace = false
dependencies = ["ci", "docs-build"]
command = "./scripts/release-brew.sh"
[tasks.release-check]
description = "Check if release artifacts are ready"
workspace = false
command = "./scripts/release-check.sh"
args = ["${1}"]
[tasks.ci-check]
description = "Check GitHub Actions workflow health and report failures"
workspace = false
command = "./scripts/ci-health-check.sh"
[tasks.ci-health]
alias = "ci-check"
[tasks.completions]
description = "Generate shell completion scripts"
command = "cargo"
args = [
"run",
"--bin",
"ggen",
"--",
"shell",
"completion",
"generate",
"--shell",
"${SHELL}",
"--output",
"${OUTPUT}",
]
[tasks.completions-install]
description = "Install shell completion scripts"
command = "cargo"
args = [
"run",
"--bin",
"ggen",
"--",
"shell",
"completion",
"install",
"--shell",
"${SHELL}",
"--force",
]
[tasks.completions-list]
description = "List supported shell completion types"
command = "cargo"
args = ["run", "--bin", "ggen", "--", "shell", "completion", "list"]