Files
git.stella-ops.org/.gitea/workflows/golden-set-validation.yml
master 7f7eb8b228 Complete batch 012 (golden set diff) and 013 (advisory chat), fix build errors
Sprints completed:
- SPRINT_20260110_012_* (golden set diff layer - 10 sprints)
- SPRINT_20260110_013_* (advisory chat - 4 sprints)

Build fixes applied:
- Fix namespace conflicts with Microsoft.Extensions.Options.Options.Create
- Fix VexDecisionReachabilityIntegrationTests API drift (major rewrite)
- Fix VexSchemaValidationTests FluentAssertions method name
- Fix FixChainGateIntegrationTests ambiguous type references
- Fix AdvisoryAI test files required properties and namespace aliases
- Add stub types for CveMappingController (ICveSymbolMappingService)
- Fix VerdictBuilderService static context issue

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 10:09:07 +02:00

141 lines
5.5 KiB
YAML

# Licensed under AGPL-3.0-or-later. Copyright (C) 2026 StellaOps Contributors.
# Sprint: SPRINT_20260110_012_010_TEST
# Golden Set Corpus Validation Workflow
name: Golden Set Validation
on:
push:
paths:
- 'src/__Tests/__Datasets/golden-sets/**'
- 'src/__Tests/Integration/GoldenSetDiff/**'
- 'src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.GoldenSet/**'
pull_request:
paths:
- 'src/__Tests/__Datasets/golden-sets/**'
- 'src/__Tests/Integration/GoldenSetDiff/**'
- 'src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.GoldenSet/**'
workflow_dispatch:
jobs:
validate-corpus:
name: Validate Golden Set Corpus
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'
- name: Restore dependencies
run: dotnet restore src/__Tests/Integration/GoldenSetDiff/StellaOps.Integration.GoldenSetDiff.csproj
- name: Build
run: dotnet build src/__Tests/Integration/GoldenSetDiff/StellaOps.Integration.GoldenSetDiff.csproj --no-restore
- name: Run Corpus Validation Tests
run: |
dotnet test src/__Tests/Integration/GoldenSetDiff/StellaOps.Integration.GoldenSetDiff.csproj \
--filter "FullyQualifiedName~CorpusValidationTests" \
--logger "trx;LogFileName=corpus-validation.trx" \
--results-directory ./TestResults
- name: Run Determinism Tests
run: |
dotnet test src/__Tests/Integration/GoldenSetDiff/StellaOps.Integration.GoldenSetDiff.csproj \
--filter "FullyQualifiedName~DeterminismTests" \
--logger "trx;LogFileName=determinism.trx" \
--results-directory ./TestResults
- name: Run Replay Validation Tests
run: |
dotnet test src/__Tests/Integration/GoldenSetDiff/StellaOps.Integration.GoldenSetDiff.csproj \
--filter "FullyQualifiedName~ReplayValidationTests" \
--logger "trx;LogFileName=replay-validation.trx" \
--results-directory ./TestResults
- name: Upload Test Results
uses: actions/upload-artifact@v4
if: always()
with:
name: test-results
path: ./TestResults/*.trx
e2e-tests:
name: E2E Fix Verification Tests
runs-on: ubuntu-latest
needs: validate-corpus
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'
- name: Restore dependencies
run: dotnet restore src/__Tests/E2E/GoldenSetDiff/StellaOps.E2E.GoldenSetDiff.csproj
- name: Build
run: dotnet build src/__Tests/E2E/GoldenSetDiff/StellaOps.E2E.GoldenSetDiff.csproj --no-restore
- name: Run E2E Tests
run: |
dotnet test src/__Tests/E2E/GoldenSetDiff/StellaOps.E2E.GoldenSetDiff.csproj \
--logger "trx;LogFileName=e2e.trx" \
--results-directory ./TestResults
- name: Upload Test Results
uses: actions/upload-artifact@v4
if: always()
with:
name: e2e-test-results
path: ./TestResults/*.trx
count-golden-sets:
name: Count and Report Golden Sets
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Count Golden Sets
id: count
run: |
total=$(find src/__Tests/__Datasets/golden-sets -name "*.golden.yaml" | wc -l)
openssl=$(find src/__Tests/__Datasets/golden-sets/openssl -name "*.golden.yaml" 2>/dev/null | wc -l)
glibc=$(find src/__Tests/__Datasets/golden-sets/glibc -name "*.golden.yaml" 2>/dev/null | wc -l)
curl=$(find src/__Tests/__Datasets/golden-sets/curl -name "*.golden.yaml" 2>/dev/null | wc -l)
log4j=$(find src/__Tests/__Datasets/golden-sets/log4j -name "*.golden.yaml" 2>/dev/null | wc -l)
synthetic=$(find src/__Tests/__Datasets/golden-sets/synthetic -name "*.golden.yaml" 2>/dev/null | wc -l)
echo "Total: $total"
echo "OpenSSL: $openssl"
echo "glibc: $glibc"
echo "curl: $curl"
echo "Log4j: $log4j"
echo "Synthetic: $synthetic"
echo "total=$total" >> $GITHUB_OUTPUT
if [ "$total" -lt 15 ]; then
echo "::warning::Golden set corpus has fewer than 15 entries ($total)"
fi
- name: Report Summary
run: |
echo "## Golden Set Corpus Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Component | Count |" >> $GITHUB_STEP_SUMMARY
echo "|-----------|-------|" >> $GITHUB_STEP_SUMMARY
echo "| OpenSSL | $(find src/__Tests/__Datasets/golden-sets/openssl -name '*.golden.yaml' 2>/dev/null | wc -l) |" >> $GITHUB_STEP_SUMMARY
echo "| glibc | $(find src/__Tests/__Datasets/golden-sets/glibc -name '*.golden.yaml' 2>/dev/null | wc -l) |" >> $GITHUB_STEP_SUMMARY
echo "| curl | $(find src/__Tests/__Datasets/golden-sets/curl -name '*.golden.yaml' 2>/dev/null | wc -l) |" >> $GITHUB_STEP_SUMMARY
echo "| Log4j | $(find src/__Tests/__Datasets/golden-sets/log4j -name '*.golden.yaml' 2>/dev/null | wc -l) |" >> $GITHUB_STEP_SUMMARY
echo "| Synthetic | $(find src/__Tests/__Datasets/golden-sets/synthetic -name '*.golden.yaml' 2>/dev/null | wc -l) |" >> $GITHUB_STEP_SUMMARY
echo "| **Total** | **$(find src/__Tests/__Datasets/golden-sets -name '*.golden.yaml' | wc -l)** |" >> $GITHUB_STEP_SUMMARY