This document provides comprehensive information about the advanced build system integrated into the CyberAi repository.
CyberAi now includes a sophisticated build system with multiple build tools and configurations to support various development and deployment scenarios.
- Build Tools
- Quick Start
- Build Commands
- Configuration Files
- Docker Support
- CI/CD Integration
- Advanced Features
- Troubleshooting
Cross-platform build automation with comprehensive targets for development and production.
Key Features:
- Color-coded output for better readability
- Parallel execution support
- Comprehensive help system
- Quality gates and verification
Usage:
make help # Display all available targets
make install # Install dependencies
make build # Build the project
make test # Run tests
make quality # Run all quality checksPrimary build tool for TypeScript compilation.
Configuration: tsconfig.json
Usage:
npm run build # Standard build
npm run build:watch # Watch mode
npm run typecheck # Type check onlyAdvanced bundling with optimization and tree-shaking.
Configuration: esbuild.config.js
Features:
- Fast compilation
- Code splitting
- Tree shaking
- Minification
- Source maps
Usage:
npm run build:esbuild # Build with esbuild
npm run build:esbuild:watch # Watch modeMonorepo build orchestration with intelligent caching.
Configuration: turbo.json
Features:
- Parallel execution
- Incremental builds
- Remote caching
- Task dependencies
Usage:
turbo run build # Run build with turbo
turbo run test # Run tests with cachingComprehensive build orchestration script.
Location: scripts/advanced-build.sh
Features:
- Multi-stage builds
- Environment configuration
- Quality checks integration
- Build verification
- Detailed logging
Usage:
npm run build:advanced # Production build
npm run build:dev # Development build
# With environment variables
SKIP_TESTS=true npm run build:advanced
VERBOSE=true npm run build:advanced# Clone and setup
git clone https://github.com/SolanaRemix/CyberAi.git
cd CyberAi
# Using Makefile (recommended)
make install
make build
make test
# Using npm scripts
npm ci
npm run build
npm test# Using Makefile
make build-prod
# Using advanced script
npm run build:advanced
# Using Make with full pipeline
make ci# Start in watch mode
make build-watch
# Or using npm
npm run build:watch
# With test watcher
make test-watch| Command | Description |
|---|---|
npm run build |
Standard TypeScript build |
npm run build:advanced |
Production build with advanced script (requires bash) |
npm run build:dev |
Development build (requires bash) |
npm run build:watch |
Watch mode for incremental builds |
npm run build:esbuild |
Build with esbuild bundler |
npm run build:esbuild:watch |
esbuild watch mode |
npm run clean |
Clean build artifacts (cross-platform via rimraf) |
npm run clean:all |
Deep clean including node_modules (cross-platform) |
| Target | Description |
|---|---|
make help |
Display help |
make install |
Install dependencies |
make build |
Build project |
make build-prod |
Production build |
make build-watch |
Watch mode |
make test |
Run tests |
make lint |
Run linter |
make typecheck |
Type checking |
make quality |
All quality checks |
make clean |
Clean artifacts |
make ci |
Full CI pipeline |
TypeScript compiler configuration.
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"strict": true,
"outDir": "./dist"
}
}esbuild bundler configuration with multiple entry points.
Key Features:
- Multiple bundles (main, agents, contracts, security, utils)
- Production minification
- Source maps
- Tree shaking
- Watch mode support
Turbo monorepo configuration.
Pipeline Configuration:
- Build dependencies
- Caching strategies
- Output directories
- Environment variables
Cross-platform build automation.
Variables:
NODE_VERSION: Target Node.js versionBUILD_DIR: Build output directoryLOGS_DIR: Logs directory
Multi-stage Docker build with optimization.
Stages:
- base: Base image with system dependencies
- deps: Production dependencies
- dev-deps: Development dependencies
- builder: Build stage
- production: Final production image
- development: Development image
Usage:
# Build production image
docker build -t cyberai:latest .
# Build development image
docker build --target development -t cyberai:dev .
# Run container
docker run -p 3000:3000 cyberai:latestMulti-service orchestration.
Services:
app: Main application (production)dev: Development servicesite: Astro siteredis: Cache layer (optional)nginx: Reverse proxy (optional)
Usage:
# Start all services
docker-compose up -d
# Start specific profile
docker-compose --profile dev up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose downNPM Scripts:
npm run docker:build # Build Docker image
npm run docker:run # Run container
npm run docker:up # Docker Compose up
npm run docker:down # Docker Compose downLocation: .github/workflows/advanced-build.yml
Jobs:
- build-matrix: Multi-platform builds (Ubuntu, macOS, Windows)
- optimized-build: Production-optimized build
- docker-build: Docker image build test
- verify-build: Build output verification
- benchmark: Performance benchmarks
Features:
- Multi-OS testing
- Multiple Node.js versions
- Build artifacts upload
- Size analysis
- Performance metrics
Trigger:
# Automatically on push/PR to main/develop
# Manual trigger via workflow_dispatch# Using Make parallel execution
make -j4 build test lint
# Using Turbo
turbo run build test --parallel# TypeScript incremental
npm run build:watch
# esbuild watch
npm run build:esbuild:watch- TypeScript:
.tsbuildinfo - Turbo:
.turbo/cache - Docker: BuildKit cache
Generated file: dist/build-info.json
Contains:
- Version
- Build mode
- Timestamp
- Node version
- Git commit/branch
- Platform info
# Run all quality checks
make quality
# Individual checks
make lint
make typecheck
make testAutomatic verification of:
- Build output existence
- Required files
- Build info generation
# Increase Node memory
export NODE_OPTIONS="--max-old-space-size=4096"
npm run buildchmod +x scripts/advanced-build.sh# Use BuildKit
DOCKER_BUILDKIT=1 docker build .
# Check .dockerignore
cat .dockerignoreEnsure you're in the project root:
cd /home/runner/work/CyberAi/CyberAi
make help# Clean and rebuild
make clean-all
make install
make build# With advanced script
VERBOSE=true npm run build:advanced
# With make
make build V=1- Standard build: ~5-10s
- Advanced build: ~20-30s
- Docker build: ~2-3 min
- Full CI pipeline: ~5-10 min
- TypeScript output: ~500KB - 2MB
- esbuild bundle: ~300KB - 1MB (minified)
- Docker image: ~200-400MB
- Use multi-stage Docker builds
- Run as non-root user in containers
- Scan dependencies regularly
- Use specific versions in CI
- Implement build verification
- Non-root Docker user
- Minimal base images
- Dependency scanning
- Secret exclusion (.dockerignore)
- TypeScript Documentation
- esbuild Documentation
- Turbo Documentation
- Docker Documentation
- Make Documentation
When adding new build features:
- Update this documentation
- Add tests for new build targets
- Update CI/CD workflows
- Ensure cross-platform compatibility
- Add examples and troubleshooting
This build system is part of the CyberAi project and follows the same license (MIT).