Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/workflows/benchmark-evidence.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Benchmark Evidence

on:
workflow_dispatch:
inputs:
include_synthetic:
description: "Include synthetic fixtures in report generation"
required: false
default: false
type: boolean
schedule:
- cron: "0 5 * * 1"

permissions:
contents: read

jobs:
benchmark-evidence:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x

- name: Restore
run: dotnet restore GauntletCI.slnx

- name: Build benchmark reporter
run: dotnet build src/GauntletCI.BenchmarkReporter/GauntletCI.BenchmarkReporter.csproj --configuration Release --no-restore

- name: Generate benchmark evidence artifacts
shell: bash
run: |
set -euo pipefail
args=("--repo-root" "${GITHUB_WORKSPACE}" "--output-dir" "${GITHUB_WORKSPACE}/docs/benchmarks")
if [ "${{ github.event.inputs.include_synthetic || 'false' }}" = "true" ]; then
args+=("--include-synthetic")
fi
dotnet run --project src/GauntletCI.BenchmarkReporter/GauntletCI.BenchmarkReporter.csproj --configuration Release -- "${args[@]}"
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow builds the reporter in Release (dotnet build ... --no-restore) and then runs it via dotnet run, which will trigger another build unless --no-build is specified. Consider adding --no-build to the dotnet run invocation to avoid redundant compilation and speed up scheduled runs.

Suggested change
dotnet run --project src/GauntletCI.BenchmarkReporter/GauntletCI.BenchmarkReporter.csproj --configuration Release -- "${args[@]}"
dotnet run --project src/GauntletCI.BenchmarkReporter/GauntletCI.BenchmarkReporter.csproj --configuration Release --no-build -- "${args[@]}"

Copilot uses AI. Check for mistakes.

- name: Upload benchmark evidence artifact
uses: actions/upload-artifact@v4
with:
name: gauntletci-benchmark-evidence
path: |
docs/benchmarks/latest.json
docs/benchmarks/latest.csv
1 change: 1 addition & 0 deletions GauntletCI.slnx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<Solution>
<Folder Name="/src/">
<Project Path="src/GauntletCI.BenchmarkReporter/GauntletCI.BenchmarkReporter.csproj" />
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include benchmark reporter tests in solution

Add tests/GauntletCI.BenchmarkReporter.Tests/GauntletCI.BenchmarkReporter.Tests.csproj to GauntletCI.slnx; otherwise the new parser tests are never executed in CI. I checked .github/workflows/ci.yml and .github/workflows/release.yml, and both run dotnet test GauntletCI.slnx, so omitting this project from the solution means regressions in the new reporter CLI parsing can ship unnoticed.

Useful? React with 👍 / 👎.

<Project Path="src/GauntletCI.Cli/GauntletCI.Cli.csproj" />
<Project Path="src/GauntletCI.Core/GauntletCI.Core.csproj" />
<Project Path="src/GauntletCI.PrIntegration.Host/GauntletCI.PrIntegration.Host.csproj" />
Expand Down
Loading
Loading