Skip to content

Commit 9c07e2d

Browse files
chore(ci): exact infra#566 naive sharding emulation
Replaces curated ci-shard gates with an exact emulation of the naive sharding from ethereum-optimism/infra#566: 1. Discover all 68 test packages on disk (loadGatelessValidators) 2. sort.Strings (Go lexicographic) 3. i % 8 == shardIndex (round-robin) 4. --exclude-gates flake-shake (post-shard, removes 4 packages) Result: 64 packages across 8 shards (7-9 per shard). This includes fault-proof tests, external-network tests, and everything else that the curated shards in #19423 intentionally excluded. The naive approach has no awareness of test weight or prerequisites. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent a67479e commit 9c07e2d

File tree

2 files changed

+97
-73
lines changed

2 files changed

+97
-73
lines changed

op-acceptance-tests/acceptance-tests.yaml

Lines changed: 95 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -211,136 +211,174 @@ gates:
211211
timeout: 15m
212212

213213
# ============================================================================
214-
# CI PARALLEL SHARDS (NAIVE ROUND-ROBIN)
214+
# CI PARALLEL SHARDS (NAIVE ROUND-ROBIN — infra#566 emulation)
215215
# ============================================================================
216-
# Emulates the naive sharding from ethereum-optimism/infra#566:
217-
# all 46 packages sorted alphabetically, assigned round-robin (i % 8).
218-
# Compare wall-clock time against the curated shards in #19423.
216+
# Exact emulation of ethereum-optimism/infra#566's naive sharding:
217+
# 1. Discover all 68 test packages on disk (loadGatelessValidators)
218+
# 2. sort.Strings (Go lexicographic sort)
219+
# 3. i % 8 == shardIndex (round-robin assignment)
220+
# 4. --exclude-gates flake-shake (post-shard exclusion)
219221
#
220-
# Exclusions match #19423: fault-proof tests, external-network tests,
221-
# and flake-shake quarantine packages are not included.
222+
# This includes fault-proof tests, external-network tests, etc. — the naive
223+
# approach has no awareness of test weight or prerequisites.
222224
# ============================================================================
223225

224226
- id: ci-shard-0
225-
description: "Naive round-robin shard 0/8"
227+
description: "Naive round-robin shard 0/8 (infra#566 emulation)"
226228
tests:
227229
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/base
228230
timeout: 20m
229-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/depreqres/reqressyncdisabled/elsync
231+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/batcher/throttling
230232
timeout: 20m
231-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/message
232-
timeout: 30m
233-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/upgrade-no-supervisor
233+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/ecotone
234234
timeout: 20m
235-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/rules
235+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/proofs
236236
timeout: 20m
237-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/supernode/interop/same_timestamp_invalid
237+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/sync/multisupervisor_interop
238+
timeout: 20m
239+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/isthmus/preinterop
240+
timeout: 20m
241+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/safeheaddb_elsync
242+
timeout: 20m
243+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync/clsync/gap_clp2p
244+
timeout: 20m
245+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync_tester/sync_tester_elsync_multi
238246
timeout: 20m
239247

240248
- id: ci-shard-1
241-
description: "Naive round-robin shard 1/8"
249+
description: "Naive round-robin shard 1/8 (infra#566 emulation)"
242250
tests:
243251
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/base/chain
244252
timeout: 20m
245-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/depreqres/syncmodereqressync/clsync
253+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/custom_gas_token
246254
timeout: 20m
247-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/prep
255+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/fjord
248256
timeout: 20m
249-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/upgrade-singlechain
257+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/proofs-singlechain
250258
timeout: 20m
251-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/safeheaddb_clsync
259+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/sync/simple_interop
260+
timeout: 20m
261+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/isthmus/preinterop-singlechain
252262
timeout: 20m
253-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync/...
263+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sequencer
264+
timeout: 20m
265+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync/elsync/gap_clp2p
266+
timeout: 20m
267+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync_tester/sync_tester_ext_el
254268
timeout: 20m
255269

256270
- id: ci-shard-2
257-
description: "Naive round-robin shard 2/8"
271+
description: "Naive round-robin shard 2/8 (infra#566 emulation)"
258272
tests:
259273
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/base/conductor
260274
timeout: 20m
261-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/ecotone
275+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/flashblocks
262276
timeout: 20m
263-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/reorgs
277+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/proofs/fpp
264278
timeout: 20m
265-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/isthmus
279+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/upgrade
266280
timeout: 20m
267-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/safeheaddb_elsync
281+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/isthmus/withdrawal_root
268282
timeout: 20m
269-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync_tester/sync_tester_e2e
283+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/supernode
284+
timeout: 20m
285+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync/elsync/gap_elp2p
286+
timeout: 20m
287+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync_tester/sync_tester_hfs
270288
timeout: 20m
271289

272290
- id: ci-shard-3
273-
description: "Naive round-robin shard 3/8"
291+
description: "Naive round-robin shard 3/8 (infra#566 emulation)"
274292
tests:
275293
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/base/deposit
276294
timeout: 20m
277-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/fjord
295+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/depreqres/reqressyncdisabled/clsync
278296
timeout: 20m
279-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/seqwindow
297+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/fusaka
280298
timeout: 20m
281-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/isthmus/erc20_bridge
299+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/proofs/serial
282300
timeout: 20m
283-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sequencer
301+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/upgrade-no-supervisor
284302
timeout: 20m
285-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync_tester/sync_tester_elsync
303+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/jovian/bpo2
304+
timeout: 20m
305+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync/elsync/reorg
306+
timeout: 20m
307+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync_tester/sync_tester_hfs_ext
286308
timeout: 20m
287309

288310
- id: ci-shard-4
289-
description: "Naive round-robin shard 4/8"
311+
description: "Naive round-robin shard 4/8 (infra#566 emulation)"
290312
tests:
291-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/batcher/...
313+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/base/withdrawal/cannon
292314
timeout: 20m
293-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/flashblocks
315+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/depreqres/reqressyncdisabled/divergence
294316
timeout: 20m
295-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/smoke
317+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/contract
296318
timeout: 20m
297-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/isthmus/operator_fee
319+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/proofs/withdrawal
298320
timeout: 20m
299-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/supernode
321+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/upgrade-singlechain
300322
timeout: 20m
301-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync_tester/sync_tester_elsync_multi
323+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/jovian/pectra
324+
timeout: 20m
325+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync/follow_l2
302326
timeout: 20m
303327

304328
- id: ci-shard-5
305-
description: "Naive round-robin shard 5/8"
329+
description: "Naive round-robin shard 5/8 (infra#566 emulation)"
306330
tests:
307-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/custom_gas_token
331+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/base/withdrawal/cannon_kona
308332
timeout: 20m
309-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/fusaka
333+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/depreqres/reqressyncdisabled/elsync
310334
timeout: 20m
311-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/sync/multisupervisor_interop
335+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/loadtest
312336
timeout: 20m
313-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/isthmus/pectra
337+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/reorgs
314338
timeout: 20m
315-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/supernode/interop
339+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/isthmus/erc20_bridge
316340
timeout: 20m
317-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync_tester/sync_tester_hfs
341+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/proofs/cannon
342+
timeout: 20m
343+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/supernode/interop/follow_l2
344+
timeout: 20m
345+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync/manual
318346
timeout: 20m
319347

320348
- id: ci-shard-6
321-
description: "Naive round-robin shard 6/8"
349+
description: "Naive round-robin shard 6/8 (infra#566 emulation)"
322350
tests:
323-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/depreqres/reqressyncdisabled/clsync
351+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/base/withdrawal/permissioned
324352
timeout: 20m
325-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/contract
353+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/depreqres/syncmodereqressync/clsync
326354
timeout: 20m
327-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/sync/simple_interop
355+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/message
328356
timeout: 20m
329-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/isthmus/withdrawal_root
357+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/seqwindow
330358
timeout: 20m
331-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/supernode/interop/follow_l2
359+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/isthmus/operator_fee
360+
timeout: 20m
361+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/rules
362+
timeout: 20m
363+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/supernode/interop/reorg
364+
timeout: 20m
365+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync_tester/sync_tester_e2e
332366
timeout: 20m
333367

334368
- id: ci-shard-7
335-
description: "Naive round-robin shard 7/8"
369+
description: "Naive round-robin shard 7/8 (infra#566 emulation)"
336370
tests:
337-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/depreqres/reqressyncdisabled/divergence
371+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/batcher
338372
timeout: 20m
339-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/loadtest
373+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/prep
340374
timeout: 20m
341-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/upgrade
375+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop/smoke
342376
timeout: 20m
343-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/jovian/...
377+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/isthmus/pectra
344378
timeout: 20m
345-
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/supernode/interop/reorg
379+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/safeheaddb_clsync
380+
timeout: 20m
381+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/supernode/interop/same_timestamp_invalid
382+
timeout: 20m
383+
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync_tester/sync_tester_elsync
346384
timeout: 20m

op-acceptance-tests/scripts/check-shard-coverage.sh

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,11 @@ MODULE="github.com/ethereum-optimism/optimism/op-acceptance-tests/tests"
2020
# --- Known exclusions (covered by develop-CI, nightly, or flake-shake) ---
2121
# If you add a package here, add a comment explaining where it's covered.
2222
EXCLUDED_PACKAGES=(
23-
# Fault-proof tests — covered by develop-CI gates (isthmus, pre-interop, interop)
24-
"base/withdrawal/cannon"
25-
"base/withdrawal/cannon_kona"
26-
"base/withdrawal/permissioned"
27-
"isthmus/preinterop"
28-
"isthmus/preinterop-singlechain"
29-
"interop/proofs"
30-
"interop/proofs/fpp"
31-
"interop/proofs/serial"
32-
"interop/proofs/withdrawal"
33-
"interop/proofs-singlechain"
34-
"proofs/cannon"
35-
# External-network daily tests — covered by sync-test-op-node gate
36-
"sync_tester/sync_tester_ext_el"
37-
"sync_tester/sync_tester_hfs_ext"
38-
# Flake-shake quarantine — temporarily excluded, tracked in flake-shake gate
23+
# Flake-shake quarantine — excluded by --exclude-gates flake-shake in infra#566
3924
"supernode/interop/activation"
4025
"depreqres/syncmodereqressync/elsync"
4126
"depreqres/reqressyncdisabled"
27+
"supernode/interop"
4228
)
4329

4430
# --- Find all test packages on disk that contain actual test functions ---

0 commit comments

Comments
 (0)