🚀 Multi-Language CI/CD Toolchain
Unified development workflow for Go, Java, Python, TypeScript
Quick Start
One-time Setup
make setupInstalls all language tools, configures Git hooks, and sets up branch strategy.
Daily Commands
make format # Format all code
make check # Quality checks
make test # Run tests
make build # Build projects
make push # Safe push with pre-checks
make clean # Clean build artifactsProject Status
make status # Show project information
make info # Show tool versionsLocal Development Configuration
For efficient local development, you can create a .localci.toml file in the root directory to override the default configuration:
Create Local Configuration
# Copy the default configuration
cp makefiles/localci.toml .localci.toml
# Edit to enable only the modules you're working on
# Set enabled = true for active modules, false for othersExample Local Configuration
[meta]
version = 1
[[python.apps]]
name = "core-agent"
dir = "core/agent"
enabled = true # Only enable the module you're working on
[[python.apps]]
name = "core-memory"
dir = "core/memory/database"
enabled = false # Disable other modules for faster execution
# ... other modules set to enabled = falseBenefits
- Faster execution: Only processes enabled modules
- Focused development: Work on specific modules without interference
- Easy switching: Change
enabledvalues to switch between modules
Core Commands
make setup
One-time environment setup. Installs tools, configures Git hooks, sets branch strategy.
make format
Formats code for all languages:
- Go:
gofmt+goimports+gofumpt+golines - Java: Maven
spotless:apply - Python:
black+isort - TypeScript:
prettier
make check (alias: make lint)
Quality checks for all languages:
- Go:
gocyclo+staticcheck+golangci-lint - Java:
checkstyle+pmd+spotbugs - Python:
flake8+mypy+pylint - TypeScript:
eslint+tsc
make test
Runs tests for all projects:
- Go:
go testwith coverage - Java:
mvn test - Python:
pytestwith coverage - TypeScript:
npm test
make build
Builds all projects:
- Go: Build binaries
- Java: Maven
package - Python: Install dependencies
- TypeScript: Vite
build
make push
Safe push with pre-checks:
- Runs
formatandcheckautomatically - Validates branch naming
- Pushes to remote repository
make clean
Cleans build artifacts for all languages.
Running Services
# Go service
cd core/tenant && go run cmd/main.go
# Java service
cd console/backend && mvn spring-boot:run
# Python services
cd core/memory/database && python main.py
cd core/agent && python main.py
# TypeScript frontend
cd console/frontend && npm run devAdditional Commands
make status
Shows project information and active projects.
make info
Displays tool versions and installation status.
make fix
Auto-fixes code issues (formatting + some lint fixes).
make ci
Complete CI pipeline: format + check + test + build.
make hooks
Git hook management:
make hooks-install- Install complete hooksmake hooks-install-basic- Install lightweight hooksmake hooks-uninstall- Uninstall hooks
make enable-legacy
Enables specialized language commands for backward compatibility.
Specialized Commands
After running make enable-legacy, you can use language-specific commands:
Go Commands
make fmt-go # Format Go code
make check-go # Go quality check
make test-go # Run Go tests
make build-go # Build Go projectJava Commands
make fmt-java # Format Java code
make check-java # Java quality check
make test-java # Run Java tests
make build-java # Build Java projectPython Commands
make fmt-python # Format Python code
make check-python # Python quality check
make test-python # Run Python testsTypeScript Commands
make fmt-typescript # Format TypeScript code
make check-typescript # TypeScript quality check
make test-typescript # Run TypeScript tests
make build-typescript # Build TypeScript projectGit Hooks
Install Hooks
make hooks-install # Complete hooks (format+check)
make hooks-install-basic # Lightweight hooks (format only)Branch Naming
feature/user-auth # Feature branch
bugfix/fix-login # Bug fix
hotfix/security-patch # HotfixCommit Messages
feat: add user authentication
fix: resolve login timeout
docs: update API documentationTroubleshooting
Common Issues
# Tool installation problems
make info # Check tool status
make install-tools # Reinstall tools
# Project detection issues
make status # Check project status
make _debug # Debug detection
# Hook problems
make hooks-uninstall && make hooks-install
# Local configuration issues
rm .localci.toml # Remove local config to use defaults
cp makefiles/localci.toml .localci.toml # Reset local config