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.sarifAzure 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