Skip to content

Latest commit

 

History

History
88 lines (67 loc) · 2.76 KB

File metadata and controls

88 lines (67 loc) · 2.76 KB

GitHub Pages Performance Dashboard

This repository automatically deploys a performance dashboard to GitHub Pages that displays:

  • Build Status: Current CI/CD pipeline status
  • Performance Benchmarks: Command parser and shell core performance metrics
  • Code Coverage: Line/branch/function coverage reports with visualizations
  • API Documentation: Auto-generated Doxygen documentation
  • Fuzzing Results: Security testing outputs

Viewing the Dashboard

Once GitHub Pages is enabled, the dashboard will be available at: https://wsollers.github.io/shell/

Setup Instructions

  1. Enable GitHub Pages:

    • Go to your repository settings
    • Navigate to "Pages" in the sidebar
    • Under "Source", select "GitHub Actions"
    • The dashboard will be deployed automatically after the next CI run
  2. Required Repository Secrets:

    • CODECOV_TOKEN: For uploading coverage data to Codecov.io
  3. Azure Integration (Optional):

    • AZURE_CLIENT_ID: Service principal client ID
    • AZURE_CLIENT_SECRET: Service principal secret
    • AZURE_TENANT_ID: Azure tenant ID
    • AZURE_SUBSCRIPTION_ID: Azure subscription ID

Dashboard Features

Performance Tracking

  • Interactive charts showing benchmark performance over time
  • Command parser and shell core execution times
  • Performance regression detection

Coverage Visualization

  • Real-time coverage percentages
  • Detailed coverage reports with line-by-line analysis
  • Coverage trend tracking

API Documentation

  • Auto-generated from source code comments
  • Interactive class and function reference
  • Searchable documentation

Security Monitoring

  • Fuzzing test results
  • Static analysis findings
  • Dependency vulnerability scans

Manual Updates

The dashboard is automatically updated on every CI run. Data includes:

  • Benchmark results from Google Benchmark
  • Coverage reports from LLVM/Clang coverage tools
  • Fuzzing outputs from libFuzzer
  • API docs from Doxygen

Troubleshooting

If the dashboard doesn't update:

  1. Check that GitHub Pages is enabled with "GitHub Actions" as source
  2. Verify CI workflows are passing
  3. Check the "Actions" tab for deployment status
  4. Ensure artifacts are being generated by CI jobs

Local Development

To preview the dashboard locally:

  1. Run CI jobs to generate artifacts
  2. Download artifacts from GitHub Actions
  3. Serve the site/ directory with any HTTP server:
    cd site && python -m http.server 8000

Technologies Used

  • Frontend: Pure HTML/CSS/JavaScript with Chart.js
  • Build System: CMake with cross-platform presets
  • CI/CD: GitHub Actions with artifact processing
  • Coverage: LLVM source-based coverage
  • Documentation: Doxygen with custom styling
  • Deployment: GitHub Pages with automated workflows