ethereum-optimism / ethereum-optimism/optimism
CI: Split Go and contracts tests into separate continuation configs
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 4k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 145
Description
## Summary
Follow-up from #18812: Split Go tests and contracts tests into separate continuation configs that only run when relevant files change.
## Motivation
Currently, Go tests and contracts tests run on all PRs regardless of what files changed. By creating separate continuation configs (similar to how `kona.yml` only runs on `kona/**` changes), we can:
- Reduce CI time for PRs that only touch contracts (skip Go tests)
- Reduce CI time for PRs that only touch Go code (skip contracts tests)
- Save compute resources
## Proposed Changes
1. Create `.circleci/continue/go-tests.yml` - runs on `**/*.go` changes
2. Create `.circleci/continue/contracts-tests.yml` - runs on `packages/contracts-bedrock/**` changes
3. Update the path-filtering mapping in `config.yml` to route appropriately
## References
- PR comment: https://github.com/ethereum-optimism/optimism/pull/18812#discussion_r2699181261
Contributor guide
Research direction
Start with .circleci/config.yml and the existing .circleci/continue/kona.yml configuration, then compare how path filtering routes changes. Create the separate go-tests.yml and contracts-tests.yml continuations described in the issue and update the mapping so each runs only for its relevant paths. Done means Go-only and contracts-only changes skip the unrelated test suite.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- ci-cd
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 58/100