feat: embedded fill Dockerfile + state-actor/eest build-run CI#254
Merged
Conversation
Make builder.eest_payloads.fill_image and fill_dockerfile both optional: when neither is set, benchmarkoor builds the fill image from a Dockerfile.eest-filler embedded in the binary (go:embed). The Dockerfile copies nothing from the build context, so it builds against an empty temp dir written by resolveFillDockerfile (cleaned up after the build). Moves Dockerfile.eest-filler into pkg/builder so it can be embedded, and drops the now-unnecessary fill_dockerfile line from the example configs, docs, and config.example.yaml.
Add an optional build phase to the composite action (build-config / build-config-urls / build-args) that runs `benchmarkoor build` before the existing run step; existing jobs are unaffected. Add a state-actor job to ci.action.yaml that builds OSAKA nethermind+besu snapshots, fills the compute bn128 subset with the besu filler, then replays the fixtures on nethermind and besu (datadir_method: copy, 256 MB snapshot).
32f2a25 to
25e6ec1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #248. Two related changes that, together, let CI exercise the full
state-actor→eest_payloads→runpipeline on a GitHub-hosted runner.1. Build the fill image from an embedded Dockerfile by default
builder.eest_payloads.fill_imageandfill_dockerfileare now both optional. When neither is set, benchmarkoor builds the fill image from aDockerfile.eest-fillerembedded in the binary (go:embed). The Dockerfile copies nothing from the build context (execution-specs is bind-mounted at run time), so it builds against an empty temp dir written byresolveFillDockerfileand cleaned up afterwards.Dockerfile.eest-fillerintopkg/builder/so it can be embedded (.dockerignoredoesn't exclude it, so the in-image Go build still embeds it).BuildsFillImage()now also builds when nofill_imageis configured; dropped the "one of fill_image/fill_dockerfile is required" validation.fill_dockerfileline from the example configs; updated docs +config.example.yaml.TestEmbeddedFillDockerfile,TestResolveFillDockerfile(configured + embedded paths, with cleanup),TestBuildsFillImagetruth table.2. state-actor + eest build/run e2e via the composite action
action.yaml— optional build phase (build-config/build-config-urls/build-args) that runsbenchmarkoor buildbefore the existing run step. Existing jobs are unaffected (the phase is skipped when no build config is passed).ci.action.yaml— newstate-actorjob: builds OSAKA nethermind + besu snapshots, fills the computebn128subset with the besu filler, then replays the fixtures on nethermind and besu.datadir_method: copy+ a 256 MB snapshot keep it within anubuntu-latestrunner. Runs on PRs (consistent with the other action jobs).Validation
go test ./...green (except the pre-existing macOS-only/proc/mountsschelk tests);golangci-lint --new-from-rev=origin/master0 issues; actionlint clean.fill_dockerfile: fill image built from the embed → 36/36 filled (osaka bn128), nethermind + besu snapshots OK, replay 72/72 (36 each), 0 failed — including verifyingcleanup_on_startdoes not wipe the freshly-built snapshots.