fix(mcms): select public rpc for fork tests#553
Conversation
🦋 Changeset detectedLatest commit: 3b9fc53 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
10b14a5 to
415824c
Compare
There was a problem hiding this comment.
Pull Request Overview
This PR ensures that fork tests use public RPCs by filtering out private internal RPCs from the chain configuration. The change prevents fork test failures when only private RPCs are available by validating RPC accessibility and selecting appropriate public endpoints.
Key changes:
- Added validation to ensure public RPCs are available before running fork tests
- Implemented RPC filtering logic to distinguish between public and private endpoints
- Added comprehensive test coverage for the new RPC selection functionality
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| engine/cld/legacy/cli/mcmsv2/mcms_v2.go | Added validation check to ensure at least one RPC is available before executing fork commands |
| engine/cld/environment/anvil.go | Implemented selectPublicRPC and isPublicRPC functions to filter and select public RPCs for fork environments |
| engine/cld/environment/anvil_test.go | Added comprehensive unit tests for the new RPC selection logic |
| .changeset/fine-cups-battle.md | Added changeset documentation for the fix |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
415824c to
3b9fc53
Compare
|
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## chainlink-deployments-framework@0.60.1 ### Patch Changes - [#553](#553) [`8d6a9f7`](8d6a9f7) Thanks [@gustavogama-cll](https://github.com/gustavogama-cll)! - fix(mcms): select public rpc for fork tests - [#551](#551) [`cf4de66`](cf4de66) Thanks [@giogam](https://github.com/giogam)! - fix(catalog): updates errors in remote implementation --------- Co-authored-by: app-token-issuer-engops[bot] <144731339+app-token-issuer-engops[bot]@users.noreply.github.com>


What
Ignore CLL rpcs when selecting the RPC for the ForkedEnvironment (used by anvil to fetch
the contract state).
Why
In the CI, the fork tests need to GAP to access the CLL rpcs. However, because we run anvil inside a containers, the setup gets rather complicated -- we need to copy+adapt the entries added to
/etc/hostsand add GAP's custom CA certificates. But, because anvil is managed using testcontainers (indirectly, via CTF), we'd need to add support for this feature to CTF, then CLDF and finally the CLD workflows.However, CLL is moving towards replacing GAP with Tailscale to access internal resources from GHA runners. So, rather than spending significant resources implementing the GAP solution, we're adding this quick fix -- which should solve the problem for 95% of the proposals -- until the Tailscale option is ready.
DPT-277