ethereum-optimism / ethereum-optimism/optimism

CI: Split Go and contracts tests into separate continuation configs

Open
#18,862 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.