Skip to content

ci: add Batch Sync workflow skeleton - #12

Open
darkobas2 wants to merge 1 commit into
mainfrom
ci/batch-sync-workflow
Open

ci: add Batch Sync workflow skeleton#12
darkobas2 wants to merge 1 commit into
mainfrom
ci/batch-sync-workflow

Conversation

@darkobas2

Copy link
Copy Markdown

Adds a Batch Sync workflow skeleton, manually triggered via workflow_dispatch.

Every batch-export flag is exposed as a typed input, defaulted to the CLI's own defaults:

Input Default Flag
start_block 31306381 --start
end_block 0 (latest) --end
max_request 15 --max-request
block_range_limit 5 --block-range-limit
output export.ndjson --output
compress false --compress
verbosity info --verbosity

Notes on a few choices:

  • make binary, not make build. make build runs go build ./... and produces no artifact; make binary is the target that emits dist/batch-export.
  • The RPC endpoint comes from a secret rather than being hardcoded, so no infrastructure hostname is committed to this public repo. The Compose endpoint step adds HTTP Basic credentials only when both a user and a password are present, and falls back to the bare URL otherwise. The composed value is masked and passed via GITHUB_ENV rather than echoed.
  • block_range_limit is documented as "keep low" — large eth_getLogs ranges can exhaust memory on the node serving them.
  • The Sync step is a deliberate failing TODO. The export half is runnable; the publish destination hasn't been decided, and a silent no-op would be worse than an obvious stop.

The schedule trigger is present but commented out until the sync destination is wired up.

Adds a manually-triggered Batch Sync workflow exposing every batch-export flag
as a typed input: start/end block, max requests per second, block range limit,
output path, compression and verbosity.

The job runs on the self-hosted bee runners, whose egress addresses are inside
the RPC provider's allowlist, so no credential is needed there. If it is ever
moved to a hosted runner the endpoint requires HTTP Basic auth, so the Compose
endpoint step builds an authenticated URL when a user and password are
available and falls back to the bare URL when they are not. The composed value
is masked and passed through the environment rather than echoed, and the
endpoint itself comes from a secret so no infrastructure hostname is committed
here.

The final sync step is deliberately a failing TODO: the export half is
runnable, but the publish destination has not been decided yet.
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