Repository navigation
test(molecule): split the slowest side effects into siblings - #196
Merged
Merged
Conversation
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
sponsord-install, iroh-relay-gate and sponsord-onramp-nginx were the critical path of the Molecule run (~7.5 min each in CI), mostly side effect. Each keeps its first half; a sibling that reuses its prepare, converge and verify by path, with an identical inventory, takes the rest: - sponsord-wallet: the treasury wallet and secret.env plays - iroh-relay-access: bind addresses, node-ID failures and access modes - sponsord-onramp-turnstile: the custom gate page and Turnstile Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
thiras
force-pushed
the
test/molecule-split-side-effects
branch
from
October 31, 2026 23:04
2ec7976 to
c0be5d8
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.
Why
Three scenarios set the Molecule wall clock, at about 7.5 minutes each in CI (run 41205792704):
sponsord-install(469 s),iroh-relay-gate(452 s) andsponsord-onramp-nginx(~450 s). In each one the side effect is 70–80 % of the time: 14–16 whole-role re-runs.What
Each scenario is split along its side effects, using the repo's sibling pattern (AGENTS.md § Molecule). The new scenario reuses the parent's prepare, converge and verify by path, has an identical inventory, and is in the pair list in
tests/scripts-test.sh.sponsord-install: release mode (the loopback mirror)sponsord-wallet: the treasury wallet andsecret.envplays (prepare is../sponsord/prepare.yml; it needs no mirror)iroh-relay-gate: the node-ID read, §1–§4, then converging backiroh-relay-access: the node-ID read, §5–§6 (bind addresses, node-ID failures, access modes), then converging backsponsord-onramp-nginx: plays 1–6sponsord-onramp-turnstile: the custom gate page and TurnstileThe plays moved unchanged. Each side keeps the state its plays depend on, and the
secret.envplay stays whole (it compares PIDs).The only read of
default/files/decdn-node-stubmoved fromsponsord-installtosponsord-walletwith the wallet plays, so the two selector tests (#195) that namedsponsord-installas a reader of that stub now namesponsord-wallet.Each sibling is placed in
SLOW_FIRSTright after its parent for now (rebased onto #194'sdecdn-gateway-lifecycleentry). I'll reorder them from this PR's CI times.Tradeoff
Each sibling adds one runner's fixed cost when it runs: about 70 s, or about 25 s with #193. With #195, a sibling runs only when a change can affect it.
Verification
make molecule SCENARIOS='sponsord-install sponsord-wallet iroh-relay-gate iroh-relay-access sponsord-onramp-nginx sponsord-onramp-turnstile': all six passed locally (642 s, 4 at a time).make test-scripts(the pair checks for the three new siblings,SLOW_FIRST) andmake lintpass.SLOW_FIRSTorder.Rebased onto #193, #194 and #195.
🤖 Generated with Claude Code