Pipeline Configuration

This guide provides comprehensive pipeline configurations for implementing static code analysis in modern CI/CD environments.

Multi-Platform Pipeline Templates

GitHub Actions Advanced Configuration

name: Comprehensive Static Analysis
on:
  push:
    branches: [main]
  pull_request:
    branches: [main, develop, 'release/*']
  schedule:
    - cron: '0 0 * * 0'  # Weekly full scan

jobs:
  analyze:
    name: Static Analysis
    runs-on: ubuntu-latest
    permissions:
      security-events: write
      actions: read
      contents: read
      
    strategy:
      matrix:
        language: [javascript, python, java, go]
        
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
          
      # Language-specific setup
      - uses: actions/setup-node@v4
        if: matrix.language == 'javascript'
        with:
          node-version: '20'
          
      - uses: actions/setup-python@v4
        if: matrix.language == 'python'
        with:
          python-version: '3.11'
          
      - uses: actions/setup-java@v3
        if: matrix.language == 'java'
        with:
          distribution: 'temurin'
          java-version: '21'
          
      - uses: actions/setup-go@v4
        if: matrix.language == 'go'
        with:
          go-version: '1.21'
          
      # SAST Analysis
      - name: Initialize CodeQL
        uses: github/codeql-action/init@v2
        with:
          languages: ${{ matrix.language }}
          queries: security-extended,security-and-quality
          
      # Dependency Scanning
      - name: Dependency Review
        uses: actions/dependency-review-action@v3
        
      # Custom Rules
      - name: Run Semgrep
        uses: semgrep/semgrep-action@v1
        with:
          config: >-
            p/ci
            p/security-audit
            p/owasp-top-ten
            p/supply-chain
          timeout: 300
          
      # Quality Gates
      - name: SonarCloud Analysis
        uses: SonarSource/sonarcloud-github-action@master
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
        with:
          args: >
            -Dsonar.projectKey=${{ github.repository_owner }}_${{ github.event.repository.name }}
            -Dsonar.organization=${{ github.repository_owner }}
            -Dsonar.sources=.
            -Dsonar.language=${{ matrix.language }}
            
      # Results Processing
      - name: Process Analysis Results
        uses: github/codeql-action/analyze@v2
        with:
          category: "/language:${{ matrix.language }}"
          
      - name: Upload SARIF
        uses: github/codeql-action/upload-sarif@v2
        with:
          sarif_file: results.sarif

Azure DevOps Advanced Pipeline

Pipeline Configuration Patterns

1. Analysis Matrix Configuration

2. Quality Gates Configuration

3. Security Policy Configuration

Advanced Pipeline Features

1. Incremental Analysis

2. Performance Optimization

3. Results Management

Pipeline Integration Points

1. Source Control Integration

2. Issue Tracking Integration

3. Documentation Integration

Monitoring and Metrics

1. Pipeline Metrics

2. Performance Monitoring

Best Practices Implementation

1. Error Handling

2. Security Controls

3. Compliance Requirements

Remember to regularly review and update pipeline configurations as security requirements and tools evolve.

Last updated