Skip to content

circleci: run the acceptance tests on op-node + op-geth - #556

Closed
palango wants to merge 2 commits into
palango/celo-rebase-19from
palango/restore-acceptance-tests
Closed

palango wants to merge 2 commits into
palango/celo-rebase-19from
palango/restore-acceptance-tests

Conversation

@palango

@palango palango commented Oct 13, 2026 •

Copy link
Copy Markdown

Since the rebase onto op-node/v1.19.9 no op-acceptance-tests job runs in CI: upstream removed its op-geth variants and we disable the op-reth and kona ones, which run binaries without Celo's changes. This adds memory-all-opn-op-geth back, the job celo-rebase-18 had, and makes ci-gate wait for it. It restores less than the name suggests, because the devstack now skips every chain that schedules Karst when the EL is op-geth, and Karst is the default fork.

What that means in practice, from a local run of seven test directories on op-geth: 7 tests passed and 24 skipped, every skip from the guard in op-devstack/sysgo/deployer.go:546-555. The Ecotone FeeHandler assertion (op-acceptance-tests/tests/ecotone/fees_test.go) runs and passes. The Fjord one from #412 skips, and so do all twelve base/conductor tests. A green run of this job says the Jovian-and-older tests pass on Celo's op-geth and little more.

Full coverage needs celo-reth as the test EL, tracked in celo-org/celo-blockchain-planning#1462. I decided against making the devstack default to Jovian for op-geth: that's fork-only test plumbing for an EL we're retiring. Karl raised the gap on #541 (#541 (comment)).

The first CI run (39 minutes, 274 results: 46 passed, 217 skipped, 11 failed) failed on upstream's ZK proposer, which Celo doesn't run, so the second commit skips those tests:

  • TestZKDisputeGameWithdrawal in tests/proofs/super: kona-sp1-proposer re-executes the block holding the withdrawal transaction and gets a different output root than Celo's op-geth ("Failed to validate L2 block build(deps-dev): bump semver from 5.7.1 to 5.7.2 #33 with claimed output root …"), so the game is never proven. Skipped with gt.Skip, like the fork's other fault-proof skips.
  • tests/proofs/zk: on one node the package runs serially and passes the 30-minute package timeout; 15 tests passed, one was cut off and nine never started. Skipped as a whole through a TestMain in a new celo_test.go, so nothing in the upstream files changes. Its tests then don't show up as skipped in the report; the package prints one line saying why.

Everything that passed locally passed in CI, proofs/cannon_kona included, and the Ecotone FeeHandler test passed while the Fjord one skipped, as expected.

For review:

  • The job requires rust-kona-binaries and rust-op-reth-binary directly, since rust-binaries-for-sysgo is disabled and the job exits early unless op-reth and op-reth-sdm-fixture exist.
  • It runs on one celo-org/2xlarge node (the job definition on this branch ignores parallelism) and blocks every non-docs push. Without the ZK tests it should take well under the 39 minutes of the first run; the second run will give the number.
  • Which Celo rule makes kona's output root differ isn't established. Base-fee routing to the FeeHandler is the obvious candidate, but no log line says so.

The ci-config-reviewer pass found nothing blocking; I dropped the discord context it flagged as unused. The merged config passes circleci config validate and circleci config process. .circleci/scripts/test-decision-tree.sh doesn't run under macOS bash 3.2, so that check is unrun; this change doesn't touch routing. I didn't run the Go review agent on the two-line skip commit. The base is palango/celo-rebase-19 because celo-rebase-19 isn't published yet.

No acceptance job ran on this branch, so the devstack FeeHandler assertions
were untested. op-geth is the only L2 EL here with Celo's changes; the devstack
skips Karst chains on it, so only tests pinned up to Jovian run.
Upstream kona re-executes a Celo block with a user transaction to a
different output root, so the ZK game is never proven, and tests/proofs/zk
runs past the 30m package timeout on the single-node op-geth job.
@palango

palango commented Oct 13, 2026

Copy link
Copy Markdown
Author

Squashed into the rebase branch as 1cb6f33 (#541), same tree as this PR's head. Closing this one.

@palango palango closed this Oct 13, 2026
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