Skip to content

feat(runner): fixtures_url standalone mode + GitHub artifact URL support#274

Merged
skylenet merged 1 commit into
masterfrom
fixtures-url-standalone
Jul 8, 2026
Merged

feat(runner): fixtures_url standalone mode + GitHub artifact URL support#274
skylenet merged 1 commit into
masterfrom
fixtures-url-standalone

Conversation

@skylenet

@skylenet skylenet commented Jul 8, 2026

Copy link
Copy Markdown
Member

What

Makes eest_fixtures.fixtures_url a standalone source (when github_release is unset), pointing at either:

  • a release / plain .tar.gz URL, or
  • a GitHub Actions artifact URL (github.com/<owner>/<repo>/actions/runs/<run>/artifacts/<id>) — downloaded via the GitHub API (needs runner.github_token), unzipped, and its **inner .tar.gz auto-extracted`.

fixtures_subdir points at the fixtures within; no genesis is fetched (stateful-engine fixtures boot from the snapshot datadir). When github_release is set, fixtures_url keeps its existing role as the release-URL override.

This lets you consume a benchmarkoor build artifact directly:

tests:
  source:
    eest_fixtures:
      fixtures_url: https://github.com/ethpandaops/benchmarkoor/actions/runs/28947560261/artifacts/8170387928
      fixtures_subdir: benchmarkoor-build-artifacts/eest-payloads/geth/blockchain_tests_stateful_engine
# runner.github_token / BENCHMARKOOR_RUNNER_GITHUB_TOKEN required for artifact URLs

…and any plain tarball URL (e.g. a benchmarkoor-tests release asset) works with no token.

How

  • config: UseFixturesURL() (fixtures_url set & no github_release) as a new mode in validate(); no github_repo required for URL mode.
  • executor: prepareFromURLdownloadFromURL auto-detects artifact-vs-plain via parseGitHubArtifactURL; artifact URLs reuse a new shared downloadArtifactZip (by owner/repo/id), plain URLs reuse downloadAndExtractTarball. The artifact-name mode now uses the same downloadArtifactZip (dedup).

Tests / docs

  • TestParseGitHubArtifactURL (artifact vs release vs plain) + TestEESTFixturesSource_UseFixturesURL (mode + validation). go build/go test green (except the pre-existing macOS-only /proc/mounts schelk test); golangci-lint --new-from-rev=origin/master 0 issues.
  • docs/configuration.md updated: fixtures_url description, github_repo now Yes*, mode note, and a standalone-URL example.

fixtures_url can now be a standalone eest_fixtures source (when
github_release is unset), pointing at either:
- a release/plain .tar.gz URL, or
- a GitHub Actions artifact URL
  (github.com/<owner>/<repo>/actions/runs/<run>/artifacts/<id>), downloaded
  via the API (needs runner.github_token) with its inner .tar.gz extracted —
  so a benchmarkoor build artifact can be consumed directly.

fixtures_subdir points at the fixtures within; no genesis is fetched
(stateful-engine fixtures boot from the snapshot datadir). When github_release
is set, fixtures_url keeps acting as the release-URL override.

The by-id artifact download is shared with the existing artifact-name mode
(downloadArtifactZip).
@skylenet
skylenet merged commit f4e94de into master Jul 8, 2026
7 checks passed
@skylenet
skylenet deleted the fixtures-url-standalone branch July 8, 2026 14:52
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