github-workflow

vamseeachanta's avatarfrom vamseeachanta

GitHub Actions workflow automation for intelligent CI/CD pipelines with adaptive optimization. Use for workflow creation, pipeline optimization, security scanning, failure analysis, and automated deployment strategies.

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 2, 2026

When & Why to Use This Skill

This Claude skill automates the creation, management, and optimization of intelligent CI/CD pipelines using GitHub Actions. It leverages adaptive workflow generation and swarm coordination to enhance development velocity, ensure security compliance, and implement self-healing mechanisms for failed builds, significantly reducing DevOps overhead.

Use Cases

  • Automated Pipeline Generation: Rapidly set up customized CI/CD workflows for new projects by automatically detecting languages and frameworks.
  • Workflow Performance Optimization: Identify build bottlenecks and implement intelligent test selection, parallelization, and caching to reduce execution time.
  • Integrated Security Operations: Automatically incorporate multi-language security audits, secret scanning, and vulnerability reporting into the delivery process.
  • Self-Healing CI/CD: Automatically diagnose pipeline failures using log analysis and apply automated fixes for common issues like dependency conflicts.
  • Progressive Deployment Management: Orchestrate complex deployment patterns including canary releases and blue-green deployments based on automated risk assessment of code changes.
namegithub-workflow
descriptionGitHub Actions workflow automation for intelligent CI/CD pipelines with adaptive optimization. Use for workflow creation, pipeline optimization, security scanning, failure analysis, and automated deployment strategies.

GitHub Workflow Automation Skill

Overview

This skill enables creation and management of intelligent, self-organizing CI/CD pipelines using GitHub Actions with swarm coordination. It provides adaptive workflow generation, performance optimization, and automated pipeline management.

Key Capabilities:

  • Swarm-powered GitHub Actions workflows
  • Dynamic workflow generation based on code analysis
  • Intelligent test selection and parallelization
  • Self-healing pipeline automation
  • Performance monitoring and optimization

Quick Start

# .github/workflows/intelligent-ci.yml
name: Intelligent CI with Swarms
on: [push, pull_request]

jobs:
  analyze-and-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Analyze Changes
        run: |
          # Determine affected packages
          CHANGED=$(git diff --name-only HEAD~1)
          echo "Changed files: $CHANGED"

      - name: Dynamic Test Selection
        run: |
          # Run only affected tests
          npm test -- --changedSince=HEAD~1

When to Use

  • New Project Setup: Creating initial CI/CD pipelines
  • Pipeline Optimization: Improving slow or inefficient workflows
  • Security Integration: Adding automated security scanning
  • Deployment Automation: Setting up progressive deployment strategies
  • Failure Recovery: Implementing self-healing pipelines

Usage Examples

1. Multi-Language Detection Workflow

# .github/workflows/polyglot-ci.yml
name: Polyglot Project Handler
on: push

jobs:
  detect-and-build:
    runs-on: ubuntu-latest
    outputs:
      matrix: ${{ steps.detect.outputs.matrix }}
    steps:
      - uses: actions/checkout@v4

      - name: Detect Languages
        id: detect
        run: |
          # Detect project languages
          LANGUAGES=()
          [ -f "package.json" ] && LANGUAGES+=("node")
          [ -f "requirements.txt" ] && LANGUAGES+=("python")
          [ -f "go.mod" ] && LANGUAGES+=("go")
          [ -f "Cargo.toml" ] && LANGUAGES+=("rust")

          # Build matrix JSON
          MATRIX=$(printf '%s\n' "${LANGUAGES[@]}" | jq -R . | jq -s '{language: .}')
          echo "matrix=$MATRIX" >> $GITHUB_OUTPUT

  build:
    needs: detect-and-build
    strategy:
      matrix: ${{ fromJson(needs.detect-and-build.outputs.matrix) }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build ${{ matrix.language }}
        run: |
          case "${{ matrix.language }}" in
            node) npm ci && npm test ;;
            python) pip install -r requirements.txt && pytest ;;
            go) go build ./... && go test ./... ;;
            rust) cargo build && cargo test ;;
          esac

2. Adaptive Security Scanning

# .github/workflows/security-scan.yml
name: Intelligent Security Scan
on:
  schedule:
    - cron: '0 0 * * *'
  workflow_dispatch:

jobs:
  security-analysis:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Run Security Scans
        id: security
        run: |
          # Initialize results
          echo '{"issues": []}' > security-results.json

          # npm audit for Node.js
          if [ -f "package-lock.json" ]; then
            npm audit --json >> security-results.json || true
          fi

          # pip audit for Python
          if [ -f "requirements.txt" ]; then
            pip install pip-audit
            pip-audit --format=json >> security-results.json || true
          fi

      - name: Create Security Issues
        if: failure()
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          # Parse and create issues for critical findings
          jq -r '.issues[]? | select(.severity == "critical")' security-results.json | \
          while read -r issue; do
            gh issue create \
              --title "Security: $(echo "$issue" | jq -r '.title')" \
              --body "$(echo "$issue" | jq -r '.description')" \
              --label "security,critical"
          done

3. Self-Healing Pipeline

# .github/workflows/self-healing.yml
name: Self-Healing Pipeline
on:
  workflow_run:
    workflows: ["CI"]
    types: [completed]

jobs:
  heal-pipeline:
    if: ${{ github.event.workflow_run.conclusion == 'failure' }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Diagnose Failure
        id: diagnose
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          # Get failed jobs
          FAILED_JOBS=$(gh run view ${{ github.event.workflow_run.id }} \
            --json jobs --jq '.jobs[] | select(.conclusion == "failure")')

          echo "Failed jobs: $FAILED_JOBS"

          # Common auto-fixes
          LOGS=$(gh run view ${{ github.event.workflow_run.id }} --log)

          if echo "$LOGS" | grep -q "npm ERR! peer dep"; then
            echo "fix=npm-peer-deps" >> $GITHUB_OUTPUT
          elif echo "$LOGS" | grep -q "ENOSPC"; then
            echo "fix=disk-space" >> $GITHUB_OUTPUT
          fi

      - name: Apply Auto-Fix
        if: steps.diagnose.outputs.fix != ''
        run: |
          case "${{ steps.diagnose.outputs.fix }}" in
            npm-peer-deps)
              npm install --legacy-peer-deps
              ;;
            disk-space)
              npm cache clean --force
              ;;
          esac

4. Progressive Deployment

# .github/workflows/progressive-deploy.yml
name: Progressive Deployment
on:
  push:
    branches: [main]

jobs:
  analyze-risk:
    runs-on: ubuntu-latest
    outputs:
      risk: ${{ steps.risk.outputs.level }}
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Analyze Risk
        id: risk
        run: |
          # Count changed files
          CHANGED=$(git diff --name-only HEAD~1 | wc -l)

          # Determine risk level
          if [ "$CHANGED" -gt 50 ]; then
            echo "level=high" >> $GITHUB_OUTPUT
          elif [ "$CHANGED" -gt 10 ]; then
            echo "level=medium" >> $GITHUB_OUTPUT
          else
            echo "level=low" >> $GITHUB_OUTPUT
          fi

  deploy:
    needs: analyze-risk
    runs-on: ubuntu-latest
    steps:
      - name: Deploy Strategy
        run: |
          case "${{ needs.analyze-risk.outputs.risk }}" in
            low)
              echo "Direct deployment"
              # Deploy immediately
              ;;
            medium)
              echo "Canary deployment - 10%"
              # Deploy to 10% of traffic
              ;;
            high)
              echo "Blue-green deployment with rollback"
              # Full blue-green with auto-rollback
              ;;
          esac

MCP Tool Integration

Multi-Agent Pipeline Orchestration

// Initialize workflow automation swarm
mcp__claude-flow__swarm_init { topology: "mesh", maxAgents: 12 }
mcp__claude-flow__agent_spawn { type: "coordinator", name: "Workflow Coordinator" }
mcp__claude-flow__agent_spawn { type: "architect", name: "Pipeline Architect" }
mcp__claude-flow__agent_spawn { type: "coder", name: "Workflow Developer" }
mcp__claude-flow__agent_spawn { type: "tester", name: "CI/CD Tester" }
mcp__claude-flow__agent_spawn { type: "optimizer", name: "Performance Optimizer" }

// Create automation rules
mcp__claude-flow__automation_setup {
  rules: [
    {
      trigger: "pull_request",
      conditions: ["files_changed > 10", "complexity_high"],
      actions: ["spawn_review_swarm", "parallel_testing", "security_scan"]
    },
    {
      trigger: "push_to_main",
      conditions: ["all_tests_pass", "security_cleared"],
      actions: ["deploy_staging", "performance_test", "notify_stakeholders"]
    }
  ]
}

// Orchestrate workflow management
mcp__claude-flow__task_orchestrate {
  task: "Manage intelligent CI/CD pipeline with continuous optimization",
  strategy: "adaptive",
  priority: "high"
}

Performance Monitoring

// Generate workflow performance reports
mcp__claude-flow__performance_report {
  format: "detailed",
  timeframe: "30d"
}

// Analyze bottlenecks
mcp__claude-flow__bottleneck_analyze {
  component: "github_actions_workflow",
  metrics: ["build_time", "test_duration", "deployment_latency"]
}

// Store insights
mcp__claude-flow__memory_usage {
  action: "store",
  key: "workflow/performance/analysis",
  value: {
    bottlenecks_identified: ["slow_test_suite", "inefficient_caching"],
    optimization_opportunities: ["parallel_matrix", "smart_caching"],
    cost_optimization_potential: "23%"
  }
}

Workflow Optimization Commands

Pipeline Optimization

# Analyze workflow performance
gh run list --workflow=ci.yml --limit=20 --json databaseId,conclusion,startedAt,updatedAt | \
  jq 'map({id: .databaseId, status: .conclusion, duration: ((.updatedAt | fromdateiso8601) - (.startedAt | fromdateiso8601))})'

# Identify slow steps
gh run view $RUN_ID --json jobs --jq '.jobs[] | {name: .name, duration: .steps | map(.completedAt | fromdateiso8601) | max - (.steps | map(.startedAt | fromdateiso8601) | min)}'

Failure Analysis

# Analyze failed runs
gh run list --status=failure --limit=10 --json databaseId,name,headBranch | \
  jq -r '.[] | "\(.databaseId): \(.name) on \(.headBranch)"'

# Get failure details
gh run view $RUN_ID --log-failed

Best Practices

1. Workflow Organization

  • Use reusable workflows for common operations
  • Implement proper caching strategies
  • Set appropriate timeouts for each job
  • Use workflow dependencies wisely

2. Security

  • Store secrets in GitHub Secrets
  • Use OIDC for cloud authentication
  • Implement least-privilege principles
  • Audit workflow permissions regularly

3. Performance

  • Cache dependencies between runs
  • Use appropriate runner sizes
  • Implement early termination for failures
  • Optimize parallel execution

4. Cost Management

  • Use self-hosted runners for heavy workloads
  • Implement concurrency controls
  • Cache Docker layers
  • Skip redundant workflow runs

Configuration Options

Option Type Default Description
max-parallel number 4 Maximum parallel jobs
timeout-minutes number 30 Job timeout
retry-on-failure boolean false Auto-retry failed jobs
cache-strategy string "npm" Dependency caching

Error Handling

Common Errors

Error: ENOSPC (No space left)

  • Cause: Disk space exhausted
  • Solution: Clear caches, use smaller runners

Error: Rate limit exceeded

  • Cause: Too many API calls
  • Solution: Add delays, use caching

Error: Timeout exceeded

  • Cause: Long-running job
  • Solution: Increase timeout or optimize job

Version History

  • 1.0.0 (2026-01-02): Initial skill conversion from workflow-automation agent