From f348e5466d7c43f59d622fdc9bd206f6018e7c55 Mon Sep 17 00:00:00 2001 From: fedejinich Date: Thu, 3 Sep 2026 09:41:35 -0300 Subject: [PATCH 1/3] ci(rsk-test): cover consumer package tests --- .github/workflows/rsk-test.yml | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/.github/workflows/rsk-test.yml b/.github/workflows/rsk-test.yml index 40bddba7df3..68e9ad17fb7 100644 --- a/.github/workflows/rsk-test.yml +++ b/.github/workflows/rsk-test.yml @@ -1,5 +1,5 @@ # Go CI for the RSK fork: whole-module static checks, plus a scoped test suite -# for the packages the fork diverges from upstream in. +# for RSK-divergent packages and consumer trees. # # Both jobs run on every PR to rsk/** (and on push to rsk/develop). They are # separate jobs so they run in parallel and neither hides the other's result; @@ -20,8 +20,8 @@ permissions: jobs: # Build, vet and lint EVERY package. `go test` only compiles the packages it - # runs, so until this job existed a compile error anywhere outside the six - # trees in go-tests passed CI unnoticed (PAYROLLUP-137). rootstack, which + # runs, so until this job existed a compile error anywhere outside the eight + # scoped trees in go-tests passed CI unnoticed (PAYROLLUP-137). rootstack, which # consumes this fork, already ran build and vet before its own tests; this # closes the gap on our side. Locally the same checks are `go build ./...`, # `go vet ./...` and `just lint-go`. @@ -52,7 +52,7 @@ jobs: # checkout cannot even load the package ("pattern # superchain-configs.zip: no matching files found"), so Build, Vet and # Lint below all need this step first. go-tests does not: none of its - # six trees import op-core/superchain. + # scoped trees import op-core/superchain. # # Same command as `just sync-superchain`. Needs git, yq, jq and zip, all # preinstalled on the runner image; ~6 s (a shallow clone of the registry). @@ -106,7 +106,7 @@ jobs: - name: Lint run: ./linter/bin/op-golangci-lint run ./... - # Scoped Go tests for the packages the RSK fork diverges from upstream in. + # Scoped Go tests for RSK-divergent packages and consumer trees. # # A single `go test` over the package paths below covers two things at once: # upstream's existing tests, as a regression guard that the fork's changes @@ -118,6 +118,13 @@ jobs: # op-deployer/pkg/deployer/forge is EXCLUDED here: its tests invoke the `forge` # binary (Foundry) and compile Solidity, so they need a Foundry-enabled runner. # That job exists separately, in rsk-contracts-test.yml. + # + # op-challenger/... is included with TestLastStepCacheAccuracy skipped because + # that inherited upstream test requires ignored/generated outputs + # cannon/bin/cannon and cannon/testdata/go-1-24/bin/hello.64.elf (the source + # documents `cd cannon && make cannon elf`). The one-shot validation failed + # only on those missing artifacts; no RSK code caused it. Do not add a Cannon + # build step here because PAYROLLUP-132 forbids adding build/vet/lint work. go-tests: runs-on: ubuntu-latest timeout-minutes: 20 @@ -132,12 +139,14 @@ jobs: go-version-file: go.mod cache: true - - name: Test RSK-divergent packages + - name: Test RSK-divergent and consumer trees run: | - go test -timeout 15m \ + go test -timeout 15m -skip '^TestLastStepCacheAccuracy$' \ ./op-node/rollup/derive/... \ ./op-node/node/... \ ./op-service/sources/... \ ./op-service/txmgr/... \ ./op-deployer/pkg/deployer/broadcaster/... \ - ./op-proposer/contracts/... + ./op-batcher/... \ + ./op-proposer/... \ + ./op-challenger/... From 3d323239e9da5019553dd81f8b4f46d7f4ad98a1 Mon Sep 17 00:00:00 2001 From: fedejinich Date: Thu, 3 Sep 2026 21:06:02 -0300 Subject: [PATCH 2/3] ci(rsk-test): tighten the TestLastStepCacheAccuracy skip rationale Replace the six-line justification with two lines: the test needs gitignored cannon artifacts and its package imports no RSK-edited code, so skipping it loses no signal. Drop the claim that PAYROLLUP-132 forbids build/vet/lint work; the ticket only excludes them as gates (PAYROLLUP-206). --- .github/workflows/rsk-test.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/rsk-test.yml b/.github/workflows/rsk-test.yml index 68e9ad17fb7..79d8c9f2d51 100644 --- a/.github/workflows/rsk-test.yml +++ b/.github/workflows/rsk-test.yml @@ -119,12 +119,8 @@ jobs: # binary (Foundry) and compile Solidity, so they need a Foundry-enabled runner. # That job exists separately, in rsk-contracts-test.yml. # - # op-challenger/... is included with TestLastStepCacheAccuracy skipped because - # that inherited upstream test requires ignored/generated outputs - # cannon/bin/cannon and cannon/testdata/go-1-24/bin/hello.64.elf (the source - # documents `cd cannon && make cannon elf`). The one-shot validation failed - # only on those missing artifacts; no RSK code caused it. Do not add a Cannon - # build step here because PAYROLLUP-132 forbids adding build/vet/lint work. + # TestLastStepCacheAccuracy needs gitignored cannon artifacts and its package + # imports no RSK-edited code, so skipping it loses no signal (PAYROLLUP-132). go-tests: runs-on: ubuntu-latest timeout-minutes: 20 From d2ba44cf6cfe8db11aac67efd616a569c60028bd Mon Sep 17 00:00:00 2001 From: fedejinich Date: Thu, 3 Sep 2026 21:25:15 -0300 Subject: [PATCH 3/3] ci(rsk-test): cover the rest of op-node and the Foundry-free op-deployer packages oprsk-node ships all of op-node and oprsk-deployer ships op-deployer, and both import RSK-patched packages, but go-tests only exercised fragments of those trees: two op-node subtrees and a single op-deployer package. A regression anywhere else in what we actually ship went untested. Replace ./op-node/rollup/derive/... and ./op-node/node/... with ./op- node/..., and add the eight op-deployer packages that run without Foundry: pkg/deployer itself (that package only, not its subtree), artifacts, clean, standard, state, upgrade/embedded, upgrade/v2_0_0 and validate. bootstrap, manage, opcm, pipeline, verify and integration_test still need forge-artifacts or the synced superchain registry, so they are left for the Foundry tier (rsk-contracts-test.yml) to pick up later; a comment above the job records that split. The go-checks header no longer names a count of scoped trees. Local run of the exact job command with -count=1: all packages PASS, no failures. op-node 29/29 ok, the nine op-deployer packages ok, 88 packages ok overall in about 50 s. Refs: PAYROLLUP-132 --- .github/workflows/rsk-test.yml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/rsk-test.yml b/.github/workflows/rsk-test.yml index 79d8c9f2d51..5baf3e9d008 100644 --- a/.github/workflows/rsk-test.yml +++ b/.github/workflows/rsk-test.yml @@ -20,7 +20,7 @@ permissions: jobs: # Build, vet and lint EVERY package. `go test` only compiles the packages it - # runs, so until this job existed a compile error anywhere outside the eight + # runs, so until this job existed a compile error anywhere outside the # scoped trees in go-tests passed CI unnoticed (PAYROLLUP-137). rootstack, which # consumes this fork, already ran build and vet before its own tests; this # closes the gap on our side. Locally the same checks are `go build ./...`, @@ -121,6 +121,10 @@ jobs: # # TestLastStepCacheAccuracy needs gitignored cannon artifacts and its package # imports no RSK-edited code, so skipping it loses no signal (PAYROLLUP-132). + # + # op-deployer bootstrap, manage, opcm, pipeline, verify and integration_test + # need forge-artifacts or the synced superchain registry, so they stay with + # the Foundry tier (PAYROLLUP-132). go-tests: runs-on: ubuntu-latest timeout-minutes: 20 @@ -138,11 +142,18 @@ jobs: - name: Test RSK-divergent and consumer trees run: | go test -timeout 15m -skip '^TestLastStepCacheAccuracy$' \ - ./op-node/rollup/derive/... \ - ./op-node/node/... \ + ./op-node/... \ ./op-service/sources/... \ ./op-service/txmgr/... \ ./op-deployer/pkg/deployer/broadcaster/... \ + ./op-deployer/pkg/deployer \ + ./op-deployer/pkg/deployer/artifacts/... \ + ./op-deployer/pkg/deployer/clean/... \ + ./op-deployer/pkg/deployer/standard/... \ + ./op-deployer/pkg/deployer/state/... \ + ./op-deployer/pkg/deployer/upgrade/embedded/... \ + ./op-deployer/pkg/deployer/upgrade/v2_0_0/... \ + ./op-deployer/pkg/deployer/validate/... \ ./op-batcher/... \ ./op-proposer/... \ ./op-challenger/...