Skip to content

Merge pull request #29 from fraware/docs/final-release-closure #128

Merge pull request #29 from fraware/docs/final-release-closure

Merge pull request #29 from fraware/docs/final-release-closure #128

Workflow file for this run

name: Bench Badge
on:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: write
jobs:
update-badge:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: '3.11'
- name: Install package
run: |
python -m pip install --upgrade pip
pip install -e '.[dev]'
- name: Run expanded benchmark
run: ovk bench --expanded --leaderboard .verification/formal-pr-bench-leaderboard.json
- name: Render shields.io badge JSON
# A benchmark run proves only which source revision was measured. It must
# never mint verified_source_sha; that designation belongs exclusively to
# the complete release-evidence ledger after all required workflows,
# package/Action checks, consumers, and holdout gates have been observed
# for one exact source revision.
run: python scripts/render_bench_badge.py --benchmark-source-sha "${GITHUB_SHA}"
- name: Commit badge artifacts
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add docs/benchmarks/leaderboard-badge.json docs/benchmarks/latest-leaderboard-summary.json
if git diff --staged --quiet; then
echo "No badge changes to commit"
else
# Badge commits skip CI by design. benchmark_source_sha identifies
# the commit measured by this benchmark job; it is not a release
# verification claim.
git commit -m "chore: update FormalPR-Bench badge [skip ci]"
git push
fi
- name: Upload full leaderboard artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: formal-pr-bench-leaderboard
path: |
.verification/formal-pr-bench-leaderboard.json
docs/benchmarks/leaderboard-badge.json
docs/benchmarks/latest-leaderboard-summary.json
retention-days: 90