UNPKG

@cloudkinetix/bmad-enhanced

Version:

Cloud-Kinetix enhanced fork of BMAD-METHOD - Breakthrough Method of Agile AI-driven Development with robust versioning and unified validation.

673 lines (465 loc) 18.1 kB
# GitLab CI/CD Automation Expansion Pack ## 🚀 Overview The **ck-gitlab-cicd-automation** expansion pack provides comprehensive GitLab CI/CD pipeline automation, monitoring, and debugging capabilities for BMAD Enhanced. It seamlessly integrates with other Cloud Kinetix expansion packs to deliver intelligent CI/CD management that works autonomously without interactive prompts. ### Key Features **Non-Interactive GitLab Operations** - All commands verified to work autonomously **Intelligent Pipeline Monitoring** - Real-time status tracking and health assessment **Advanced Failure Analysis** - Root cause analysis with actionable insights **Cross-Pack Integration** - Seamless integration with JIRA, parallel development, and AI agents **Comprehensive Reporting** - Rich dashboards and detailed failure reports **Plan-Aware Automation** - Integration with BMAD workflow planning system **NEW: Robust Fallback Strategies** - Automatic fallback from glab to API when commands fail **NEW: Enhanced Job Log Retrieval** - Reliable trace using numeric job IDs **NEW: Permission-Aware Operations** - Graceful degradation with limited access ## 📦 Installation ### Prerequisites - GitLab repository with CI/CD enabled - GitLab CLI (`glab`) installed and authenticated - BMAD Enhanced v1.4.0 or later ### Install the Expansion Pack ```bash # Install with BMAD Enhanced npx @cloudkinetix/bmad-enhanced install --expansion-packs ck-gitlab-cicd-automation # Or add to existing installation npx @cloudkinetix/bmad-enhanced install --expansion-only --expansion-packs ck-gitlab-cicd-automation ``` ### GitLab CLI Setup ```bash # Authenticate with GitLab glab auth login # Verify authentication glab auth status # Set default project (optional) glab config set gitlab.com/your-org/your-project ``` ## 🎯 Core Components ### 🤖 GitLab CI/CD Agent Primary agent for GitLab CI/CD operations with intelligent automation capabilities. ```bash # Activate the agent /glab # Common agent tasks /glab monitor pipeline status for main branch /glab analyze recent failures and suggest fixes /glab generate health report for last 7 days /glab coordinate parallel development CI status ``` ### 🛠️ Core Tasks | Task | Purpose | Usage | | ----------------------------- | ------------------------------ | -------------------------------------------- | | `monitor-pipeline-status` | Real-time pipeline monitoring | Track CI status across branches | | `analyze-pipeline-failures` | Intelligent failure analysis | Root cause analysis and recommendations | | `debug-ci-configuration` | CI config troubleshooting | Validate and optimize pipeline configuration | | `generate-ci-health-report` | Comprehensive health reporting | Team dashboards and metrics | | `sync-ci-status-to-jira` | JIRA integration | Sync pipeline status to JIRA issues | | `coordinate-parallel-ci` | Multi-worktree coordination | Manage CI across parallel development | | `create-gitlab-workflow-plan` | Workflow planning | Generate structured CI/CD plans | ### 📊 Structured Workflows | Workflow | Purpose | When to Use | | ----------------------------- | ----------------------------- | ----------------------------------- | | `gitlab-ci-debugging` | Systematic issue resolution | Pipeline failures and debugging | | `ci-health-monitoring` | Continuous monitoring | Proactive health management | | `integrated-development-flow` | Complete development workflow | Full feature development with CI/CD | ## 🔗 Integration Examples ### JIRA Integration Automatic synchronization of CI/CD status with JIRA issues. ```bash # Basic JIRA sync sync-ci-status-to-jira --branch feature/AUTH-123 # Automatic sync for workflow /glab sync pipeline status to JIRA for current branch # Configure automatic updates /jira configure CI status sync for project AUTH ``` **Example Workflow:** 1. Developer creates JIRA issue `AUTH-123: Implement user authentication` 2. Creates branch `feature/AUTH-123` 3. Pipeline status automatically syncs to JIRA issue 4. JIRA issue shows real-time CI status and links to pipeline ### Parallel Development Integration Coordinate CI/CD across multiple git worktrees for parallel development. ```bash # Assess parallel development CI health coordinate-parallel-ci --mode assess # Full coordination with recommendations coordinate-parallel-ci --auto-recommendations true # Monitor across all worktrees /glab coordinate CI status across all parallel branches ``` **Example Scenario:** ```bash # Setup parallel development git worktree add ../feature-a feature/user-auth git worktree add ../feature-b feature/payment-system # Monitor CI across all worktrees coordinate-parallel-ci --merge-target main --health-threshold 80 # Get merge readiness assessment coordinate-parallel-ci --mode assess --generate-report true ``` ### AI Agent Development Integration Enhanced CI/CD for AI agent development workflows. ```bash # Monitor agent testing pipelines /glab monitor CI for AI agent development workflows # Analyze agent performance test failures analyze-pipeline-failures --focus agent-performance # Generate agent CI health report generate-ci-health-report --agent-focus true ``` ## 📋 Usage Examples ### Daily CI Health Monitoring ```bash # Morning health check generate-ci-health-report --period 24h --format dashboard # Check for any failing pipelines monitor-pipeline-status --status failed --since "yesterday" # Analyze and address failures analyze-pipeline-failures --auto-fix-suggestions true ``` ### Pipeline Debugging Workflow ```bash # When a pipeline fails analyze-pipeline-failures --pipeline-id 12345 # Debug configuration issues debug-ci-configuration --branch feature/broken-build # Generate debug report /glab generate detailed debug analysis for pipeline 12345 ``` ### Feature Development with CI Integration ```bash # Start feature development /glab create workflow plan for feature development # Monitor progress during development monitor-pipeline-status --branch feature/new-feature --follow # Coordinate with team using JIRA sync-ci-status-to-jira --branch feature/new-feature --auto-update ``` ## 🎛️ Configuration ### Environment Variables ```bash # GitLab configuration export GITLAB_TOKEN="your-gitlab-token" export GITLAB_URL="https://gitlab.com" # or your GitLab instance # Integration settings export JIRA_INTEGRATION_ENABLED="true" export PARALLEL_DEV_INTEGRATION_ENABLED="true" # Monitoring settings export CI_HEALTH_THRESHOLD="80" export PIPELINE_TIMEOUT="3600" ``` ### Project Configuration Create `.gitlab-ci-automation.yml` in your project root: ```yaml # GitLab CI/CD Automation Configuration automation: monitoring: enabled: true health_threshold: 80 notification_channels: - slack - email integrations: jira: enabled: true project_key: "PROJ" auto_sync: true parallel_dev: enabled: true coordination_mode: "full" merge_target: "main" debugging: auto_analysis: true generate_reports: true retention_days: 30 workflows: default_workflow: "integrated-development-flow" auto_plan_creation: true ``` ## 📊 Reporting and Dashboards ### Health Dashboard Generate comprehensive CI/CD health dashboards: ```bash # Generate current health dashboard generate-ci-health-report --format dashboard --output health-dashboard.md # Real-time monitoring dashboard /glab create real-time health dashboard # Team dashboard with metrics generate-ci-health-report --format team-dashboard --period 7d ``` ### Failure Analysis Reports ```bash # Detailed failure analysis analyze-pipeline-failures --generate-report --period 24h # Debug analysis for specific pipeline analyze-pipeline-failures --pipeline-id 12345 --deep-analysis # Trend analysis analyze-pipeline-failures --trend-analysis --period 30d ``` ### Integration Status Reports ```bash # Overall integration health /glab generate integration status report # JIRA integration specific sync-ci-status-to-jira --status-report # Parallel development coordination report coordinate-parallel-ci --generate-report --detailed ``` ## 🔧 Advanced Usage ### Custom Workflow Creation ```bash # Create custom CI/CD workflow plan create-gitlab-workflow-plan --workflow-type setup --complexity complex # Integration-focused workflow create-gitlab-workflow-plan --workflow-type integration --integration-packs jira,parallel-dev # Debugging workflow create-gitlab-workflow-plan --workflow-type debugging --auto-recommendations ``` ### Multi-Environment Coordination ```bash # Monitor across environments monitor-pipeline-status --environments dev,staging,prod # Environment-specific health reports generate-ci-health-report --environment production --period 7d # Cross-environment failure analysis analyze-pipeline-failures --cross-environment --correlation-analysis ``` ### Automated Remediation ```bash # Auto-fix common issues debug-ci-configuration --auto-fix --backup-config # Intelligent retry with analysis monitor-pipeline-status --auto-retry --failure-analysis # Proactive optimization /glab optimize pipeline configuration based on performance trends ``` ## 🚨 Troubleshooting ### Common Issues #### GitLab CLI Authentication Problems ```bash # Check authentication status glab auth status # Re-authenticate if needed glab auth login --hostname gitlab.com # Verify access to project glab repo view ``` #### Pipeline Monitoring Issues ```bash # Debug monitoring connectivity monitor-pipeline-status --debug --verbose # Check GitLab API access glab api projects/:id/pipelines --paginate # Validate configuration debug-ci-configuration --validate-only ``` #### Integration Sync Failures ```bash # Test JIRA connectivity sync-ci-status-to-jira --test-connection # Debug parallel development coordination coordinate-parallel-ci --debug --dry-run # Validate integration bridge /glab test all integration connections ``` ### Performance Optimization ```bash # Analyze pipeline performance generate-ci-health-report --performance-focus # Optimize monitoring frequency monitor-pipeline-status --optimize-polling # Cache optimization debug-ci-configuration --cache-analysis ``` ### Enhanced Reliability (v1.1.0+) The expansion pack now includes robust fallback strategies to handle common GitLab CLI failures: #### Automatic Command Fallbacks When `glab` commands fail (which happens frequently with permission issues), the pack automatically falls back to direct API calls: ```bash # Enable debug mode to see fallback strategies in action export GITLAB_DEBUG=true # The pack will automatically try: # 1. glab ci get → 2. glab ci list → 3. Direct API call monitor-pipeline-status --branch main ``` #### Job Log Retrieval Fix **Important**: Job logs now use numeric job IDs (not job names): ```bash # ❌ Old way (fails): glab ci trace "job-name" # ✅ New way (works): Automatic ID resolution # The pack handles this automatically: analyze-pipeline-failures # Resolves job names to IDs internally ``` #### Permission-Aware Operations The pack now validates permissions and gracefully degrades when access is limited: ```bash # Test your GitLab permissions validate_gitlab_permissions # From gitlab-commands utility # API fallback when permissions are limited export GITLAB_TOKEN="your-token" # Direct API access often works when glab fails monitor-pipeline-status ``` ### Debug Mode Enable verbose debugging for all operations: ```bash # New enhanced debug mode (v1.1.0+) export GITLAB_DEBUG=true # Shows command fallback attempts # Legacy debug variables still supported export GITLAB_CI_DEBUG=true export BMAD_DEBUG=true # Run commands with debug output monitor-pipeline-status --debug analyze-pipeline-failures --verbose --debug # See which methods are being tried GITLAB_DEBUG=true monitor-pipeline-status ``` ## 📚 Integration Patterns ### Pattern 1: JIRA-Driven Development ```bash # 1. Create JIRA issue and branch /jira create issue "Implement user dashboard" --type Story --assignee @me git checkout -b feature/PROJ-123-user-dashboard # 2. Automatic CI monitoring with JIRA sync /glab enable automatic JIRA sync for current branch # 3. Development with real-time CI feedback monitor-pipeline-status --branch current --jira-updates # 4. Merge readiness assessment /glab assess merge readiness with JIRA integration ``` ### Pattern 2: Parallel Feature Development ```bash # 1. Setup parallel development git worktree add ../feature-auth feature/authentication git worktree add ../feature-ui feature/ui-redesign # 2. Coordinate CI across worktrees coordinate-parallel-ci --setup --merge-target main # 3. Monitor aggregate health /glab monitor parallel development CI health # 4. Plan coordinated integration coordinate-parallel-ci --integration-plan --auto-recommendations ``` ### Pattern 3: AI Agent Development ```bash # 1. Create AI agent workflow plan create-gitlab-workflow-plan --workflow-type setup --project-context ai-agent # 2. Setup agent-specific CI monitoring /glab configure monitoring for AI agent development # 3. Performance regression detection monitor-pipeline-status --agent-performance-focus # 4. Agent testing coordination /glab coordinate agent testing across environments ``` ## 🔄 Workflow Integration ### BMAD Workflow Plans The expansion pack integrates with BMAD's workflow planning system: ```bash # Create comprehensive development workflow create-gitlab-workflow-plan --bmad-integration --full-lifecycle # Load workflow into BMAD system /glab create and load development workflow plan # Track progress with checkpoints /glab track workflow progress with CI integration ``` ### Cross-Pack Coordination Seamless integration with other expansion packs: ```bash # Multi-pack coordination /glab coordinate with JIRA and parallel development packs # Comprehensive project health /glab generate cross-pack integration health report # Unified workflow execution /glab execute integrated workflow with all expansion packs ``` ## 📈 Metrics and KPIs ### Key Performance Indicators The expansion pack tracks important CI/CD metrics: - **Pipeline Success Rate**: Percentage of successful pipeline executions - **Mean Time to Recovery (MTTR)**: Average time to resolve pipeline failures - **Build Duration**: Average pipeline execution time - **Integration Health**: Cross-pack integration success rate - **Team Productivity**: Developer impact and efficiency metrics ### Custom Metrics ```bash # Define custom metrics generate-ci-health-report --custom-metrics "deployment-frequency,lead-time" # Track business impact /glab track business metrics for CI/CD performance # ROI analysis generate-ci-health-report --roi-analysis --cost-optimization ``` ## 🛡️ Security and Best Practices ### Security Configuration ```bash # Secure GitLab token storage glab auth login --secure-storage # Validate security settings debug-ci-configuration --security-audit # Monitor for security issues analyze-pipeline-failures --security-focus ``` ### Best Practices 1. **Regular Health Monitoring**: Run daily health checks 2. **Proactive Failure Analysis**: Address issues before they impact development 3. **Integration Coordination**: Keep all expansion packs synchronized 4. **Performance Optimization**: Regular pipeline performance reviews 5. **Documentation**: Maintain up-to-date CI/CD documentation ## 🤝 Contributing ### Development Setup ```bash # Clone the expansion pack for development git clone <repo-url> cd ck-gitlab-cicd-automation # Install dependencies npm install # Run tests npm test # Validate expansion pack npm run validate ``` ### Testing Tests are centralized in the main test directory for better CI/CD practices: ```bash # Run all GitLab CI/CD tests npm run test:expansion:gitlab # Run only integration tests npm run test:expansion:gitlab:integration # Run only validation tests (quick checks) npm run test:expansion:gitlab:validation # Run all expansion pack tests npm run test:expansion:all # Run tests with coverage npm test # Run specific test file npx jest test/expansion-packs/ck-gitlab-cicd-automation/integration.test.js ``` Test files are located in: - `test/expansion-packs/ck-gitlab-cicd-automation/integration.test.js` - Comprehensive feature tests - `test/expansion-packs/ck-gitlab-cicd-automation/validation.test.js` - Quick validation tests ## 📞 Support ### Getting Help - **Documentation**: [GitLab CI/CD Automation Docs](./docs/) - **Issues**: [GitHub Issues](https://github.com/cloudkinetix/bmad-enhanced/issues) - **Community**: [Cloud Kinetix Community](https://community.cloudkinetix.com) ### Common Support Scenarios ```bash # Get help with specific commands monitor-pipeline-status --help analyze-pipeline-failures --help # Access built-in documentation /glab help /glab examples # Debug mode for troubleshooting export GITLAB_CI_DEBUG=true ``` ## 📄 License This expansion pack is part of BMAD Enhanced and follows the same licensing terms. --- ## 🎉 Quick Start Checklist - [ ] Install expansion pack: `npx @cloudkinetix/bmad-enhanced install --expansion-packs ck-gitlab-cicd-automation` - [ ] Setup GitLab CLI: `glab auth login` - [ ] Verify installation: `/glab help` - [ ] Run health check: `generate-ci-health-report` - [ ] Configure integrations (optional): JIRA, parallel-dev - [ ] Create first workflow plan: `create-gitlab-workflow-plan` - [ ] Start monitoring: `monitor-pipeline-status` **You're ready to go! 🚀** For questions or advanced usage scenarios, check the [examples directory](./docs/examples/) or reach out to the Cloud Kinetix community.