Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
41bf365
ci(actions): add downstream perf workflow
Stevengre Mar 12, 2026
acacc32
ci(actions): skip perf report comment on cancelled runs
Stevengre Mar 12, 2026
d2bae31
ci(actions): install uv for downstream perf jobs
Stevengre Mar 12, 2026
717db1e
ci(actions): pin downstream perf jobs to normal runners
Stevengre Mar 12, 2026
3c73c82
ci(actions): serialize downstream perf suites
Stevengre Mar 12, 2026
76125d2
ci(actions): restore normal runner label for downstream perf
Stevengre Mar 12, 2026
513ef67
ci(actions): harden downstream perf workflow
Stevengre Mar 12, 2026
e3650a5
ci(actions): run downstream suites in parallel
Stevengre Mar 12, 2026
73f2c97
ci(actions): write downstream manifests to workspace
Stevengre Mar 12, 2026
917f131
ci(actions): fix downstream perf helper contract
Stevengre Mar 12, 2026
0c10dd4
ci(actions): inject plugin build toolchain for downstream suites
Stevengre Mar 12, 2026
92faec5
ci(actions): pin downstream plugin cmake below v4
Stevengre Mar 12, 2026
a52868b
ci(actions): install standalone cmake 3.x for suites
Stevengre Mar 12, 2026
aa906f2
ci(actions): include openssl and gmp in plugin build shell
Stevengre Mar 12, 2026
2922ab7
ci(actions): inject k and clang bins without nested nix shell
Stevengre Mar 12, 2026
52a40e0
ci(actions): export openssl and gmp hints for plugin build
Stevengre Mar 12, 2026
28dc420
ci(actions): pass openssl and gmp flags via libff cmake args
Stevengre Mar 12, 2026
edf66e2
ci(actions): export downstream toolchain path in suite shells
Stevengre Mar 12, 2026
69b14af
ci(actions): use downstream k release for injected toolchain
Stevengre Mar 12, 2026
0375231
ci(actions): pin injected clang toolchain to clang 14
Stevengre Mar 12, 2026
a9e7c13
ci(actions): classify downstream failures against baseline
Stevengre Mar 12, 2026
e653695
ci(actions): enforce downstream budget with command timeouts
Stevengre Mar 12, 2026
e5f5be7
ci(actions): classify downstream budget timeouts against baseline
Stevengre Mar 12, 2026
dcdddcd
Shard KEVM downstream perf and simplify timeout reporting
Stevengre Mar 13, 2026
5a3e3a0
Align downstream flow to master/current then compare
Stevengre Mar 13, 2026
b93151b
Rename KEVM shard jobs to proof targets
Stevengre Mar 13, 2026
85e2d70
refactor(ci): split downstream perf into raw-compare-report stages
Stevengre Mar 13, 2026
463a830
fix(ci): keep local action while running master raw jobs
Stevengre Mar 13, 2026
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
7 changes: 7 additions & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
self-hosted-runner:
labels:
- linux
- normal
- self-macos-latest

config-variables: null
99 changes: 99 additions & 0 deletions .github/actions/downstream-perf-suite/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: 'Downstream Perf Suite'
description: 'Run one downstream performance suite, preserve artifacts, and fail only after collection/upload.'

inputs:
suite:
description: 'Suite id, for example kevm or kontrol'
required: true
script:
description: 'Path to the suite runner script'
required: true
artifact-name:
description: 'Artifact name to upload'
required: true
feature-branch-name:
description: 'Raw feature branch name from GitHub context'
required: true
reason:
description: 'Trigger reason emitted by the select job'
required: true
timeout-seconds:
description: 'Per-command timeout in seconds used for feature and baseline runs'
required: false
default: '14400'
shard-label:
description: 'Optional shard label to isolate per-shard outputs'
required: false
default: ''

runs:
using: 'composite'
steps:
- name: 'Install Nix'
uses: cachix/install-nix-action@v26
with:
install_url: https://releases.nixos.org/nix/nix-2.30.1/install
extra_nix_config: |
access-tokens = github.com=${{ github.token }}
substituters = http://cache.nixos.org https://cache.iog.io
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=

- name: 'Install Cachix'
uses: cachix/cachix-action@v14
with:
name: k-framework
skipPush: true

- name: 'Install uv and cmake3'
shell: bash
run: |
python3 -m pip install --user uv
mkdir -p "$HOME/.local/bin" "$HOME/.local"
CMAKE_VERSION=3.31.6
CMAKE_ROOT="$HOME/.local/cmake-${CMAKE_VERSION}-linux-x86_64"
if [ ! -x "$CMAKE_ROOT/bin/cmake" ]; then
curl -fsSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz" \
| tar -xz -C "$HOME/.local"
fi
ln -sf "$CMAKE_ROOT/bin/cmake" "$HOME/.local/bin/cmake"
ln -sf "$CMAKE_ROOT/bin/ctest" "$HOME/.local/bin/ctest"
ln -sf "$CMAKE_ROOT/bin/cpack" "$HOME/.local/bin/cpack"
echo "$HOME/.local/bin" >> "$GITHUB_PATH"

- name: 'Run suite'
id: suite
shell: bash
env:
DOWNSTREAM_PERF_MANIFEST: ${{ github.workspace }}/scripts/logs/downstream-perf-${{ inputs.suite }}.manifest
DOWNSTREAM_PERF_TIMEOUT_SECONDS: ${{ inputs.timeout-seconds }}
FEATURE_BRANCH_NAME: ${{ inputs.feature-branch-name }}
run: |
set +e
bash "${{ inputs.script }}"
status=$?
echo "exit_code=$status" >> "$GITHUB_OUTPUT"
exit 0

- name: 'Collect suite results'
if: ${{ always() }}
shell: bash
env:
FEATURE_BRANCH_NAME: ${{ inputs.feature-branch-name }}
REASON: ${{ inputs.reason }}
DOWNSTREAM_PERF_SHARD_LABEL: ${{ inputs.shard-label }}
run: |
bash scripts/collect-downstream-perf-results.sh "${{ inputs.suite }}" "scripts/logs/downstream-perf-${{ inputs.suite }}.manifest" "$REASON" "$FEATURE_BRANCH_NAME"

- name: 'Upload suite results'
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.artifact-name }}
path: downstream-perf/${{ inputs.suite }}
if-no-files-found: error

- name: 'Fail if suite failed'
if: ${{ steps.suite.outputs.exit_code != '0' }}
shell: bash
run: |
exit "${{ steps.suite.outputs.exit_code }}"
Loading
Loading