Skip to content

fix(build-summary): mount schelk before rendering so a skipped state-actor shows its data#270

Merged
skylenet merged 1 commit into
masterfrom
fix-build-summary-schelk-render
Jul 7, 2026
Merged

fix(build-summary): mount schelk before rendering so a skipped state-actor shows its data#270
skylenet merged 1 commit into
masterfrom
fix-build-summary-schelk-render

Conversation

@skylenet

@skylenet skylenet commented Jul 7, 2026

Copy link
Copy Markdown
Member

Symptom

In the GitHub Action's build summary, a skipped state-actor target shows only Status: Skipped, Client, and Elapsed — no fork, state root, docker image, account/contract/storage counts, or DB size. The eest-payloads section on the same run shows full data.

Root cause

The build markdown summary is rendered by a separate generate-build-markdown-summary step that reads each target's on-disk output_dir (state-actor state-actor-manifest.json, eest .benchmarkoor-fill.json). The state-actor output_dir lives under a schelk mount (/schelk/state-actor/v1/nethermind); a promoted state-actor datadir is left unmounted (schelk promote). So when the render step runs after the build, the manifest reads as missing → the renderer shows nothing beyond the fields already in build-summary.json (status/client/elapsed).

The eest section is fine because its fill sidecar isn't under schelk.

Fix

generate-build-markdown-summary now ensures the schelk scratch is mounted before rendering, when any target's output_dir is under a schelk mount:

  • New exported executor.ReadBuildSummary(path) (also used by GenerateBuildMarkdown now).
  • The cmd reads the summary, and if any output_dir is schelk-backed, calls datadir.EnsureSchelkMounted once (one volume covers all). Best-effort — a non-schelk host or unreadable summary is a no-op; a mount failure logs a warning and renders what it can (no regression).

The render step already runs with sudo -E in the action, so it can mount.

The executor stays free of a datadir dependency — the schelk-ensure lives in the cmd layer.

Tests / validation

  • Existing executor + cmd tests pass (GenerateBuildMarkdown refactored onto ReadBuildSummary); go build/go test green; golangci-lint --new-from-rev=origin/master 0 issues.
  • The live schelk path can't be exercised here (needs a schelk-initialised Linux host); worth confirming on a benchmarkoor-tests re-run.

…tor shows data

The build markdown summary renders each target from its on-disk output_dir
(state-actor manifest, eest fill sidecar). A state-actor datadir promoted
onto a schelk mount is left unmounted, so by the time the separate
generate-build-markdown-summary step runs, its manifest reads as missing —
a skipped state-actor target then showed only Status/Client/Elapsed, with no
fork, state root, image, account counts, or db size.

generate-build-markdown-summary now ensures the schelk scratch is mounted
(for any output_dir under a schelk mount) before rendering, via a new
exported executor.ReadBuildSummary. Best-effort; a non-schelk host is a no-op.
@skylenet
skylenet merged commit a51937f into master Jul 7, 2026
7 checks passed
@skylenet
skylenet deleted the fix-build-summary-schelk-render branch July 7, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant