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
66 changes: 66 additions & 0 deletions .github/workflows/reprocess.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Reprocess Benchmark Results

# Re-runs process + deploy from an EXISTING benchmark run's artifacts, writing
# the results to an explicit date folder. Use case: a run whose process step
# crossed UTC midnight and stamped the wrong date. The date input must match
# the calendar day the run's benchmark jobs actually executed.
#
# Artifacts are retained for 7 days, so this only works on recent runs.
on:
workflow_dispatch:
inputs:
run-id:
description: "The benchmark workflow run ID whose artifacts to reprocess"
required: true
date:
description: "Date folder to write (YYYY-MM-DD; the day the benchmarks ran)"
required: true

jobs:
reprocess:
name: "Reprocess & Deploy"
runs-on: ubuntu-24.04-arm
timeout-minutes: 15
permissions:
contents: write
steps:
- uses: actions/checkout@v6
- name: Install Node
uses: actions/setup-node@v6
with:
node-version: "24"
- name: Download Results
uses: actions/download-artifact@v8
with:
path: results
pattern: results-*
run-id: ${{ inputs.run-id }}
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Download Versions
uses: actions/download-artifact@v8
with:
path: versions-temp
pattern: versions-*
run-id: ${{ inputs.run-id }}
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Process Results
env:
BENCH_DATE: ${{ inputs.date }}
run: |
./bench process
- name: Install vlt
run: |
npm install -g vlt@latest
- name: Build Charts View
run: |
pushd app
vlt install
vlt run build
popd
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: results
keep_files: true
full_commit_message: "reprocess: run ${{ inputs.run-id }} -> ${{ inputs.date }} (dispatched via ${{ github.workflow }} run ${{ github.run_id }})"
3 changes: 2 additions & 1 deletion scripts/process-results.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
set -Eeuxo pipefail

# Get current date for results directory
DATE=$(date +%Y-%m-%d)
# BENCH_DATE overrides the folder date (see .github/workflows/reprocess.yml)
DATE=${BENCH_DATE:-$(date +%Y-%m-%d)}

# Create results directory structure
mkdir -p "results/$DATE"
Expand Down