Skip to content

Add GHA coordinator for performance evaluation task scatter/gather#791

Draft
cjonas9 wants to merge 6 commits into
apply-loadfrom
gha-coordinator
Draft

Add GHA coordinator for performance evaluation task scatter/gather#791
cjonas9 wants to merge 6 commits into
apply-loadfrom
gha-coordinator

Conversation

@cjonas9

@cjonas9 cjonas9 commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

What

Creates a GHA coordinator that launches the tasks of the on-release performance evaluation suite and collects their results.

Adds baselines for the apply-load ingest load test (#741).

The architecture of the coordinator, as well as the changes made to the apply-load ingest load test (so that it would fit well with the coordinator), is as follows:

flowchart TB
  subgraph glue[".github/workflows/ — irreducible glue (YAML)"]
    coord["release-evaluation.yml<br/>build · areas · apply-load · report"]
    lt["load-test.yml<br/>dispatch EC2 · upload artifacts"]
  end

  subgraph pkg["cmd/stellar-rpc/internal/releaseeval/ — NEW: all logic + config"]
    eval["eval.go<br/>PerfReport schema · thresholds · compare"]
    rep["report.go<br/>render · aggregate · runGate"]
    thr["thresholds.json (//go:embed)"]
    gate["gate_test.go<br/>TestReleaseGate (env-gated entrypoint)"]
    unit["eval_test.go (unit tests)"]
  end

  subgraph it["cmd/stellar-rpc/internal/integrationtest/"]
    al["ingest_loadtest_test.go"]
  end

  ec2["EC2 box: run-load-test.sh<br/>runs apply-load test → bench-results.json"]

  coord -- "report job:<br/>go test -run TestReleaseGate" --> gate
  coord -- "apply-load job" --> lt --> ec2
  ec2 -- "bench-results.json + area-*/status.json<br/>(artifacts)" --> gate
  gate --> rep --> eval
  thr -. embedded .-> eval
  unit --> eval
  al == "imports PerfReport schema  ★ #741 edit" ==> eval
  ec2 -. "builds & runs" .-> al

  classDef edit741 fill:#ffe0e0,stroke:#cc0000,stroke-width:3px,color:#000;
  class al edit741;
Loading

Why

[TODO]

Known limitations

N/A. Remaining work for the epic this task is a part of mainly includes finishing off the other perf eval tasks (only the ingest load test is complete at this point).

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