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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
824199a
add workflow that verifies compatibility with different versions of e…
Tofel Mar 7, 2024
788b2c4
fix lints
Tofel Mar 7, 2024
50bef2b
fix worklow definion
Tofel Mar 7, 2024
401149e
another workflow fix
Tofel Mar 7, 2024
e268798
another fix
Tofel Mar 7, 2024
f2b056d
send slack notifications only if go-ethereum dep was modified
Tofel Mar 7, 2024
1db27e4
bump go-ethereum to v1.13.9 to test the workflow
Tofel Mar 7, 2024
ab60633
remove hardcoded commit hashes...
Tofel Mar 7, 2024
bbdf624
fix comparison
Tofel Mar 7, 2024
7d90c86
bump
Tofel Mar 7, 2024
3d6ec99
use correctly git diff
Tofel Mar 7, 2024
8cc5045
fetch develop before comparing
Tofel Mar 7, 2024
6bc7ee9
remove unnecesary outputs declaration
Tofel Mar 7, 2024
c4853ab
add outputs debug
Tofel Mar 7, 2024
f01f789
remove step id
Tofel Mar 7, 2024
a15337a
use explicit outputs
Tofel Mar 7, 2024
d2cf886
execute workflow also on dispatch if go-ethereum version did not change
Tofel Mar 7, 2024
afc0b4a
fix script output
Tofel Mar 7, 2024
d26ee15
fix quoting of custom images in TOML, echo test compatibility matrix
Tofel Mar 7, 2024
a9e8ae1
don't use pyroscope in compatibility tests
Tofel Mar 7, 2024
450c04f
use newer CTF
Tofel Mar 7, 2024
4c495a4
latest ctf, couple of fixes
Tofel Mar 7, 2024
2f29a8b
bump CTF, run compatibility tests only for geth
Tofel Mar 8, 2024
ab68060
all smoke tests will now use TOML config
Tofel Mar 8, 2024
81cf735
Merge branch 'develop' into tt_951_multiple_evm_versions_tests
Tofel Mar 8, 2024
f784ce4
set ethereum version to empty
Tofel Mar 8, 2024
862e2cd
adjust TOML created in CI to latest CTF changes
Tofel Mar 8, 2024
8cb0df2
run also ocr2 test
Tofel Mar 8, 2024
a4c72ee
adjust regex capture for Slack message
Tofel Mar 8, 2024
89e061b
try to group compatibilty tests results by product
Tofel Mar 8, 2024
7d96738
group by product, not full matrix
Tofel Mar 8, 2024
1653295
run even more product tests to check compatibility
Tofel Mar 11, 2024
fa183cc
fix parameter field name
Tofel Mar 11, 2024
58767bb
log details before starting private ethereum network
Tofel Mar 11, 2024
ee1db0b
fix how TOML is build for custom eth client image
Tofel Mar 11, 2024
605fffb
fix typo in argument name
Tofel Mar 11, 2024
b57040b
Merge branch 'develop' into tt_951_multiple_evm_versions_tests
Tofel Mar 11, 2024
b577e0e
fix versions + always notify slack
Tofel Mar 11, 2024
7f449b6
Merge branch 'develop' into tt_951_multiple_evm_versions_tests
Tofel Mar 12, 2024
a750e00
add a ContractBackend wrapper that is backward-compatible with go-eth…
Tofel Mar 12, 2024
e0a442f
add comment to contract calelr
Tofel Mar 12, 2024
fb08ce4
try running compatibility fix on broken version
Tofel Mar 12, 2024
4fdd3f2
just trigger
Tofel Mar 12, 2024
c7532e0
try to build image in CI
Tofel Mar 12, 2024
6875e6b
try to checkout old commit
Tofel Mar 12, 2024
a7e6476
fix contract caller, and let's see if it fails or not
Tofel Mar 12, 2024
5008f39
remove code used for testing, fix slack reporting
Tofel Mar 12, 2024
3edf8ea
fix a situation, when we lose transaction timeout setting for network…
Tofel Mar 13, 2024
c4f0e9f
trigger compatibility tests for PR bumping go-ethereum to 1.13.14
Tofel Mar 13, 2024
31a2bd4
add gas limit for Fiji, fix a situation when new networks were ignored
Tofel Mar 14, 2024
b9f9fc5
fix lints
Tofel Mar 14, 2024
ed06f10
remove hardcoded github sha
Tofel Mar 14, 2024
23308e5
Merge branch 'develop' into tt_951_multiple_evm_versions_tests
Tofel Mar 14, 2024
7bd7cfe
Merge branch 'fix_network_override' into tt_951_multiple_evm_versions…
Tofel Mar 14, 2024
7fab08c
add changeset
Tofel Mar 14, 2024
d910eea
Merge branch 'develop' into tt_951_multiple_evm_versions_tests
Tofel Mar 14, 2024
982f2d8
separate method for restarting CL cluster
Tofel Mar 14, 2024
292f2a2
Merge branch 'develop' into tt_951_multiple_evm_versions_tests
Tofel Mar 14, 2024
237fc8a
update go.mod
Tofel Mar 14, 2024
5e30137
go.mod
Tofel Mar 14, 2024
9d7baec
lints
Tofel Mar 14, 2024
5aa832c
do not bump go-eth
Tofel Mar 15, 2024
0edb752
Merge branch 'develop' into tt_951_multiple_evm_versions_tests
Tofel Mar 15, 2024
772a980
use latest CTF v1.27.0
Tofel Mar 15, 2024
86852a3
Merge branch 'develop' into tt_951_multiple_evm_versions_tests
Tofel Mar 15, 2024
8e7dfc0
dump down go-ethereum, fix some comments and descriptions
Tofel Mar 15, 2024
0791a55
add helper that exposes legacy methods to use them in test wrapper an…
Tofel Mar 15, 2024
8932867
remove stale comment
Tofel Mar 15, 2024
4684272
Merge branch 'develop' into tt_951_multiple_evm_versions_tests
Tofel Mar 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/moody-ligers-walk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

Add new pipeline for testing EVM node compatibility on go-ethereum dependency bump
9 changes: 5 additions & 4 deletions .github/actions/notify-slack-jobs-result/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,10 @@ runs:
# I feel like there's some clever, fully jq way to do this, but I ain't got the motivation to figure it out
echo "Querying test results at https://api.github.com/repos/${{inputs.github_repository}}/actions/runs/${{ inputs.workflow_run_id }}/jobs"

# we can get a maximum of 100 jobs per page, after that we need to start using pagination
PARSED_RESULTS=$(curl \
-H "Authorization: Bearer ${{ inputs.github_token }}" \
'https://api.github.com/repos/${{inputs.github_repository}}/actions/runs/${{ inputs.workflow_run_id }}/jobs' \
'https://api.github.com/repos/${{inputs.github_repository}}/actions/runs/${{ inputs.workflow_run_id }}/jobs?per_page=100' \
| jq -r --arg pattern "${{ inputs.github_job_name_regex }}" '.jobs[]
| select(.name | test($pattern)) as $job
| $job.steps[]
Expand All @@ -59,9 +60,9 @@ runs:

echo all_success=$ALL_SUCCESS >> $GITHUB_OUTPUT

FORMATTED_RESULTS=$(echo $PARSED_RESULTS | jq -s '[.[]
| {
conclusion: .conclusion,
FORMATTED_RESULTS=$(echo $PARSED_RESULTS | jq -s '[.[]
| {
conclusion: .conclusion,
cap: .cap,
html_url: .html_url
}
Expand Down
27 changes: 27 additions & 0 deletions .github/actions/setup-create-base64-config/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ inputs:
description: Grafana URL
grafanaDashboardUrl:
description: Grafana dashboard URL
ethExecutionClient:
description: Ethereum execution client to use (geth, besu, nethermind or erigon)
customEthClientDockerImage:
description: custom docker image to use for eth client (e.g. hyperledger/besu:21.10.0)

runs:
using: composite
Expand All @@ -58,6 +62,8 @@ runs:
LOGSTREAM_LOG_TARGETS: ${{ inputs.logstreamLogTargets }}
GRAFANA_URL: ${{ inputs.grafanaUrl }}
GRAFANA_DASHBOARD_URL: ${{ inputs.grafanaDashboardUrl }}
ETH_EXECUTION_CLIENT: ${{ inputs.ethExecutionClient }}
CUSTOM_ETH_CLIENT_DOCKER_IMAGE: ${{ inputs.customEthClientDockerImage }}
run: |
echo ::add-mask::$CHAINLINK_IMAGE
function convert_to_toml_array() {
Expand Down Expand Up @@ -88,6 +94,21 @@ runs:
test_log_collect=false
fi

custom_images=""
ethereum_version=""

if [ -n "$CUSTOM_ETH_CLIENT_DOCKER_IMAGE" ]; then
ethereum_version="ethereum_version=\"\""
custom_images+="[PrivateEthereumNetwork.CustomDockerImages]"
custom_images+=$'\n'"execution_layer=\"$CUSTOM_ETH_CLIENT_DOCKER_IMAGE\""
fi

if [ -n "$ETH_EXECUTION_CLIENT" ]; then
execution_layer="$ETH_EXECUTION_CLIENT"
else
execution_layer="geth"
fi

cat << EOF > config.toml
[Network]
selected_networks=$selected_networks
Expand Down Expand Up @@ -118,6 +139,12 @@ runs:
[Logging.Grafana]
base_url="$GRAFANA_URL"
dashboard_url="$GRAFANA_DASHBOARD_URL"

[PrivateEthereumNetwork]
execution_layer="$execution_layer"
$ethereum_version

$custom_images
EOF

BASE64_CONFIG_OVERRIDE=$(cat config.toml | base64 -w 0)
Expand Down
Loading
Loading