Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add workflow that verifies compatibility with different versions of evm nodes #12332

Merged
merged 69 commits into from
Mar 15, 2024

Conversation

Tofel
Copy link
Contributor

@Tofel Tofel commented Mar 7, 2024

Workflow that is triggered, when we update go-ethereum in main go.mod.

When that happens we will execute predefined tests on predefined client versions stored in integration-tests/smoke/evm_node_compatibility_test_list.json. It also support on-demand triggering with custom input (base64-ed evm node matrix with the same format as the mentioned file).

It does not address L2 EVM node compatibility.

Copy link
Contributor

github-actions bot commented Mar 7, 2024

I see that you haven't updated any CHANGELOG files. Would it make sense to do so?

Copy link
Contributor

github-actions bot commented Mar 7, 2024

I see that you haven't updated any README files. Would it make sense to do so?

@Tofel Tofel marked this pull request as ready for review March 15, 2024 14:50
@Tofel Tofel requested review from a team as code owners March 15, 2024 14:50
@@ -0,0 +1,65 @@
#!/usr/bin/env bash
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to just update the buildTestMatrixList.sh script to handle this case instead of duplicating most of its code?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tateexon created a ticker for myself to tackle it in another PR


// COPIED FROM go-ethereum/ethclient/gethclient - must be kept up to date!
// Modified to include legacy 'data' as well as 'input' in order to support non-compliant servers.
func toCallArg(msg ethereum.CallMsg) interface{} {
Copy link
Collaborator

@kalverra kalverra Mar 15, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm assuming there's no chance we can convince them to make this a public function? Is there any way we can make checking for this part of the GitHub action? We will definitely forget.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EXPORTED!

@Tofel Tofel requested a review from a team as a code owner March 15, 2024 19:03
jmank88
jmank88 previously approved these changes Mar 15, 2024
@Tofel Tofel requested a review from kalverra March 15, 2024 19:07
@Tofel Tofel enabled auto-merge March 15, 2024 19:17
@Tofel Tofel added this pull request to the merge queue Mar 15, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Mar 15, 2024
@Tofel Tofel added this pull request to the merge queue Mar 15, 2024
Merged via the queue into develop with commit 89abd72 Mar 15, 2024
105 checks passed
@Tofel Tofel deleted the tt_951_multiple_evm_versions_tests branch March 15, 2024 21:23
kidambisrinivas pushed a commit that referenced this pull request Mar 27, 2024
…vm nodes (#12332)

* add workflow that verifies compatibility with different versions of evm nodes

* fix lints

* fix worklow definion

* another workflow fix

* another fix

* send slack notifications only if go-ethereum dep was modified

* bump go-ethereum to v1.13.9 to test the workflow

* remove hardcoded commit hashes...

* fix comparison

* bump

* use correctly git diff

* fetch develop before comparing

* remove unnecesary outputs declaration

* add outputs debug

* remove step id

* use explicit outputs

* execute workflow also on dispatch if go-ethereum version did not change

* fix script output

* fix quoting of custom images in TOML, echo test compatibility matrix

* don't use pyroscope in compatibility tests

* use newer CTF

* latest ctf, couple of fixes

* bump CTF, run compatibility tests only for geth

* all smoke tests will now use TOML config

* set ethereum version to empty

* adjust TOML created in CI to latest CTF changes

* run also ocr2 test

* adjust regex capture for Slack message

* try to group compatibilty tests results by product

* group by product, not full matrix

* run even more product tests to check compatibility

* fix parameter field name

* log details before starting private ethereum network

* fix how TOML is build for custom eth client image

* fix typo in argument name

* fix versions + always notify slack

* add a ContractBackend wrapper that is backward-compatible with go-ethereum < 1.11.0

* add comment to contract calelr

* try running compatibility fix on broken version

* just trigger

* try to build image in CI

* try to checkout old commit

* fix contract caller, and let's see if it fails or not

* remove code used for testing, fix slack reporting

* fix a situation, when we lose transaction timeout setting for networks that are not overwritten

* trigger compatibility tests for PR bumping go-ethereum to 1.13.14

* add gas limit for Fiji, fix a situation when new networks were ignored

* fix lints

* remove hardcoded github sha

* add changeset

* separate method for restarting CL cluster

* update go.mod

* go.mod

* lints

* do not bump go-eth

* use latest CTF v1.27.0

* dump down go-ethereum, fix some comments and descriptions

* add helper that exposes legacy methods to use them in test wrapper and rpc client

* remove stale comment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants