forked from cosmos/ibc-go
-
Notifications
You must be signed in to change notification settings - Fork 9
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 e2e ci test #21
Closed
Closed
Add e2e ci test #21
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
4aa6215
Add e2e scrpt
ulbqb 7e80b01
Add e2e ci test
ulbqb 273a9e0
Update CHANGELOG
ulbqb 6815a56
Add fnsa to csms
ulbqb bedbb5e
Add trigger branch
ulbqb 0ecb7b4
Separate tests
ulbqb 4f22c79
Merge branch 'release/v4.3.x' into feat/e2e
ulbqb File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
name: E2E Test | ||
# Tests / Code Coverage workflow runs unit tests and uploads a code coverage report | ||
# This workflow is run on pushes to main & every Pull Requests where a .go, .mod, .sum have been changed | ||
on: | ||
pull_request: | ||
push: | ||
branches: | ||
- main | ||
- release/** | ||
jobs: | ||
test-fnsa-fnsa: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/setup-go@v3 | ||
with: | ||
go-version: '1.20' | ||
- name: Display go version | ||
run: go version | ||
- name: Test finschia to finschia | ||
run: | | ||
cd e2e | ||
make test-fnsa-fnsa | ||
test-fnsa-csms: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/setup-go@v3 | ||
with: | ||
go-version: '1.20' | ||
- name: Display go version | ||
run: go version | ||
- name: Test finschia to cosmos | ||
run: | | ||
cd e2e | ||
make test-fnsa-csms |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,3 +2,4 @@ | |
|
||
- [\#18](https://github.com/Finschia/ibc-go/pull/18) Apply [email protected] | ||
- [\#20](https://github.com/Finschia/ibc-go/pull/20) Update finschia-sdk to v0.48.0-rc1 | ||
- [\#21](https://github.com/Finschia/ibc-go/pull/21) Add e2e ci test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
bin | ||
data |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
RLY_VERSION := 2.3.1 | ||
CSMS_VERSION := 4.3.1 | ||
ARCH := $(shell dpkg --print-architecture) | ||
PATH := $(shell pwd)/bin:$(PATH) | ||
|
||
bin/simd: | ||
@mkdir -p bin && \ | ||
cd ../ && \ | ||
make build && \ | ||
mv build/simd e2e/bin | ||
@simd version --long | ||
|
||
bin/csmssimd: | ||
@mkdir -p bin/cosmos && \ | ||
cd bin/cosmos && \ | ||
curl -L https://github.com/cosmos/ibc-go/releases/download/v$(CSMS_VERSION)/ibc-go_simd_v$(CSMS_VERSION)_linux_$(ARCH).tar.gz --output cosmos_simd.tar.gz && \ | ||
tar -xf cosmos_simd.tar.gz && \ | ||
mv simd ../csmssimd | ||
@csmssimd version --long --log_level=info | ||
|
||
bin/rly: | ||
@mkdir -p bin/relayer && \ | ||
cd bin/relayer && \ | ||
curl -L https://github.com/cosmos/relayer/releases/download/v$(RLY_VERSION)/Cosmos.Relayer_$(RLY_VERSION)_linux_$(ARCH).tar.gz --output relayer.tar.gz && \ | ||
tar -xf relayer.tar.gz --transform 's!^[^/]*!relayer_archive!' && \ | ||
mv relayer_archive/rly ../ | ||
@rly version | ||
|
||
test-fnsa-fnsa: bin/rly bin/simd | ||
@./e2e fnsa-fnsa fnsa-0 simd 438 fnsa-1 simd 438 "skip" | ||
|
||
test-fnsa-csms: bin/rly bin/simd bin/csmssimd | ||
@./e2e fnsa-csms fnsa-0 simd 438 csms-1 csmssimd 118 "skip" | ||
|
||
clean-all: | ||
@rm -rf bin data | ||
|
||
clean-data: | ||
@rm -rf data | ||
|
||
.PHONY: test-fnsa-fnsa test-fnsa-csms clean-all clean-data |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
{ | ||
"type": "cosmos", | ||
"value": { | ||
"key": "testkey", | ||
"chain-id": "csms-1", | ||
"rpc-addr": "http://localhost:26557", | ||
"grpc-addr": "", | ||
"account-prefix": "cosmos", | ||
"keyring-backend": "test", | ||
"gas-adjustment": 1.5, | ||
"gas-prices": "0.025rice", | ||
"debug": true, | ||
"timeout": "10s", | ||
"output-format": "json", | ||
"sign-mode": "direct" | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
{ | ||
"type": "cosmos", | ||
"value": { | ||
"key": "testkey", | ||
"chain-id": "fnsa-0", | ||
"rpc-addr": "http://localhost:26657", | ||
"grpc-addr": "", | ||
"account-prefix": "link", | ||
"keyring-backend": "test", | ||
"gas-adjustment": 1.5, | ||
"gas-prices": "0.025stake", | ||
"debug": true, | ||
"timeout": "10s", | ||
"output-format": "json", | ||
"sign-mode": "direct" | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
{ | ||
"type": "cosmos", | ||
"value": { | ||
"key": "testkey", | ||
"chain-id": "fnsa-1", | ||
"rpc-addr": "http://localhost:26557", | ||
"grpc-addr": "", | ||
"account-prefix": "link", | ||
"keyring-backend": "test", | ||
"gas-adjustment": 1.5, | ||
"gas-prices": "0.025rice", | ||
"debug": true, | ||
"timeout": "10s", | ||
"output-format": "json", | ||
"sign-mode": "direct" | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
{ | ||
"src": { | ||
"chain-id": "fnsa-0" | ||
}, | ||
"dst": { | ||
"chain-id": "csms-1" | ||
}, | ||
"src-channel-filter": { | ||
"rule": null, | ||
"channel-list": [] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
{ | ||
"src": { | ||
"chain-id": "fnsa-0" | ||
}, | ||
"dst": { | ||
"chain-id": "fnsa-1" | ||
}, | ||
"src-channel-filter": { | ||
"rule": null, | ||
"channel-list": [] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
#!/bin/bash -e | ||
RELAYER_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" | ||
HOME_DIR="$(pwd)/data" | ||
RLY_HOME="$HOME_DIR/relayer" | ||
|
||
CHAIN_PATH=$1 | ||
CHAIN0_ID=$2 | ||
CHAIN0_BIN=$3 | ||
CHAIN0_COINID=$4 | ||
CHAIN1_ID=$5 | ||
CHAIN1_BIN=$6 | ||
CHAIN1_COINID=$7 | ||
|
||
# Ensure user understands what will be deleted | ||
if ([[ -d $HOME_DIR ]]) && [[ ! "$8" == "skip" ]]; then | ||
read -p "$0 will delete \$HOME/.relayer and \$(pwd)/data folder. Do you wish to continue? (y/n): " -n 1 -r | ||
echo | ||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then | ||
exit 1 | ||
fi | ||
fi | ||
|
||
# spin up two ibc enabled chains and add relevant config info for relaying | ||
bash scripts/chainz $CHAIN0_ID $CHAIN0_BIN $CHAIN0_COINID $CHAIN1_ID $CHAIN1_BIN $CHAIN1_COINID "$8" | ||
|
||
echo "waiting for blocks..." | ||
sleep 3 | ||
|
||
# creates clients, connections and channels (all this happens in rly tx command) | ||
rly --home $RLY_HOME tx link $CHAIN_PATH -d -t 3s | ||
sleep 2 | ||
|
||
BAL0=$(rly --home $RLY_HOME q bal $CHAIN0_ID) | ||
BAL1=$(rly --home $RLY_HOME q bal $CHAIN1_ID) | ||
|
||
echo "-- Initial balances --" | ||
echo "balance 0 $BAL0" | ||
echo "balance 1 $BAL1" | ||
|
||
if [[ "$BAL0" != *"100000000000samoleans"* ]]; then | ||
echo "balance 0 is wrong" | ||
exit 1 | ||
fi | ||
if [[ "$BAL1" != *"100000000000beans"* ]]; then | ||
echo "balance 1 is wrong" | ||
exit 1 | ||
fi | ||
|
||
echo "-- Sending IBC transaction... --" | ||
rly --home $RLY_HOME tx transfer $CHAIN0_ID $CHAIN1_ID 100000samoleans "$(rly --home $RLY_HOME keys show $CHAIN1_ID)" channel-0 -d | ||
sleep 5 | ||
|
||
# relay remaining packets -- (could also be accomplished by running: `rly start`) | ||
rly --home $RLY_HOME tx relay-packets $CHAIN_PATH channel-0 -d | ||
sleep 5 | ||
|
||
# relay remaining acknowledgments -- (could also be accomplished by running: `rly start`) | ||
rly --home $RLY_HOME tx relay-acknowledgements $CHAIN_PATH channel-0 -d | ||
sleep 5 | ||
|
||
BAL0=$(rly --home $RLY_HOME q bal $CHAIN0_ID) | ||
BAL1=$(rly --home $RLY_HOME q bal $CHAIN1_ID) | ||
|
||
echo "-- Balances after packets are sent --" | ||
echo "balance 0 $BAL0" | ||
echo "balance 1 $BAL1" | ||
|
||
if [[ "$BAL0" != *"{99999900000samoleans"* ]]; then | ||
echo "balance 0 is wrong" | ||
exit 1 | ||
fi | ||
if [[ "$BAL1" != *"100000000000beans,100000transfer/channel-0/samoleans"* ]]; then | ||
echo "balance 1 is wrong" | ||
exit 1 | ||
fi | ||
|
||
echo "-- Sending tokens back to original wallet... --" | ||
rly --home $RLY_HOME tx transfer $CHAIN1_ID $CHAIN0_ID 100000transfer/channel-0/samoleans "$(rly --home $RLY_HOME keys show $CHAIN0_ID)" channel-0 -d | ||
sleep 5 | ||
|
||
rly --home $RLY_HOME tx relay-packets $CHAIN_PATH channel-0 -d | ||
sleep 5 | ||
|
||
rly --home $RLY_HOME tx relay-acknowledgements $CHAIN_PATH channel-0 -d | ||
sleep 5 | ||
|
||
BAL0=$(rly --home $RLY_HOME q bal $CHAIN0_ID) | ||
BAL1=$(rly --home $RLY_HOME q bal $CHAIN1_ID) | ||
|
||
echo "-- Balances after sending packets back --" | ||
echo "balance 0 $BAL0" | ||
echo "balance 1 $BAL1" | ||
|
||
if [[ "$BAL0" != *"100000000000samoleans"* ]]; then | ||
echo "balance 0 is wrong" | ||
exit 1 | ||
fi | ||
if [[ "$BAL1" != *"100000000000beans"* ]]; then | ||
echo "balance 1 is wrong" | ||
exit 1 | ||
fi | ||
|
||
killall simd &> /dev/null || true | ||
killall csmssimd &> /dev/null || true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
#!/bin/bash | ||
# two-chainz creates two chains and configures the relayer to | ||
|
||
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" | ||
HOME_DIR="$(pwd)/data" | ||
RLY_HOME="$HOME_DIR/relayer" | ||
|
||
CHAIN0_ID=$1 | ||
CHAIN0_BIN=$2 | ||
CHAIN0_COINID=$3 | ||
CHAIN1_ID=$4 | ||
CHAIN1_BIN=$5 | ||
CHAIN1_COINID=$6 | ||
|
||
# Ensure binary is installed | ||
if ! [ -x "$(which $CHAIN0_BIN)" ]; then | ||
echo "Error: $CHAIN0_BIN is not installed. Try running 'make bin/$CHAIN0_BIN'" >&2 | ||
exit 1 | ||
fi | ||
if ! [ -x "$(which $CHAIN1_BIN)" ]; then | ||
echo "Error: $CHAIN1_BIN is not installed. Try running 'make bin/$CHAIN1_BIN'" >&2 | ||
exit 1 | ||
fi | ||
|
||
# Display software version for testers | ||
echo "BINARY VERSION INFO:" | ||
$CHAIN0_BIN version --long --log_level=info | ||
$CHAIN1_BIN version --long --log_level=info | ||
|
||
# Ensure jq is installed | ||
if [[ ! -x "$(which jq)" ]]; then | ||
echo "jq (a tool for parsing json in the command line) is required..." | ||
echo "https://stedolan.github.io/jq/download/" | ||
exit 1 | ||
fi | ||
|
||
# Ensure user understands what will be deleted | ||
if [[ -d $HOME_DIR ]] && [[ ! "$7" == "skip" ]]; then | ||
read -p "$(basename $0) will delete \$(pwd)/data and \$HOME/.relayer folders. Do you wish to continue? (y/n): " -n 1 -r | ||
echo | ||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then | ||
exit 1 | ||
fi | ||
fi | ||
|
||
# Delete data from old runs | ||
rm -rf $HOME_DIR &> /dev/null | ||
|
||
# Stop existing binary processes | ||
killall simd &> /dev/null | ||
killall csmssimd &> /dev/null | ||
|
||
set -e | ||
|
||
echo "Generating fnsa configurations..." | ||
mkdir -p $HOME_DIR && cd $HOME_DIR && cd ../ | ||
./scripts/one-chain $CHAIN0_BIN $CHAIN0_ID $HOME_DIR 26657 26656 6060 9090 stake samoleans | ||
./scripts/one-chain $CHAIN1_BIN $CHAIN1_ID $HOME_DIR 26557 26556 6061 9091 rice beans | ||
|
||
[ -f $HOME_DIR/$CHAIN0_ID.log ] && echo "$CHAIN0_ID initialized. Watch file $HOME_DIR/$CHAIN0_ID.log to see its execution." | ||
[ -f $HOME_DIR/$CHAIN1_ID.log ] && echo "$CHAIN1_ID initialized. Watch file $HOME_DIR/$CHAIN1_ID.log to see its execution." | ||
|
||
echo "Generating rly configurations..." | ||
rly --home $RLY_HOME config init | ||
rly --home $RLY_HOME chains add-dir configs/chains | ||
|
||
SEED0=$(jq -r '.mnemonic' $HOME_DIR/$CHAIN0_ID/key_seed.json) | ||
SEED1=$(jq -r '.mnemonic' $HOME_DIR/$CHAIN1_ID/key_seed.json) | ||
|
||
echo "Key $(rly --home $RLY_HOME keys restore $CHAIN0_ID testkey "$SEED0" --coin-type $CHAIN0_COINID) imported from CHAIN0_ID to relayer..." | ||
echo "Key $(rly --home $RLY_HOME keys restore $CHAIN1_ID testkey "$SEED1" --coin-type $CHAIN1_COINID) imported from CHAIN1_ID to relayer..." | ||
|
||
rly --home $RLY_HOME paths add-dir configs/paths |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about changing this ci to be enable to test on all branch?