Compare commits
29 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 07b566071b | |||
| 5f231e3eac | |||
| 9d3cad2771 | |||
| ae0f9b1b7b | |||
| 8a1e225365 | |||
| 2a6d0f3113 | |||
| d81e1fe44d | |||
| ef62ec6560 | |||
| 6649f859e6 | |||
| 617113555b | |||
| b9e8ba3215 | |||
| 2693ccafd1 | |||
| 8d78d23060 | |||
| 9543247def | |||
| 618c54ede3 | |||
| c91b63a6f8 | |||
| 4e63f2ce60 | |||
| bc80511863 | |||
| bc08b26ed4 | |||
| 81c5cafc60 | |||
| a9f25c2492 | |||
| 0ab5320656 | |||
| 28e7ce11e3 | |||
| 03364b848b | |||
| 8926d622b3 | |||
| a58d3dc6b2 | |||
| ece189773d | |||
| de2c3851ee | |||
| 6869de5640 |
@@ -9,30 +9,66 @@ RELEASE_DIRECTORY="target/release"
|
|||||||
VERSION_NUMBER=$1
|
VERSION_NUMBER=$1
|
||||||
WALLET_ADDRESS_CONST=n1435n84se65tn7yv536am0sfvng4yyrwj7thhxr
|
WALLET_ADDRESS_CONST=n1435n84se65tn7yv536am0sfvng4yyrwj7thhxr
|
||||||
MOCK_HOST="1.2.3.4"
|
MOCK_HOST="1.2.3.4"
|
||||||
OUTPUT=$(for i in {1..8}; do echo -n $(( $RANDOM % 10 )); done)
|
OUTPUT=$(for i in {1..8}; do echo -n $(($RANDOM % 10)); done)
|
||||||
ID="test-${OUTPUT}"
|
ID="test-${OUTPUT}"
|
||||||
|
BINARY_NAME="nym-gateway"
|
||||||
|
|
||||||
echo "the version number is ${VERSION_NUMBER}"
|
echo "the version number is ${VERSION_NUMBER} to be installed from github"
|
||||||
|
|
||||||
cd ${PWD}${RELEASE_DIRECTORY}
|
cd ${PWD}${RELEASE_DIRECTORY}
|
||||||
|
|
||||||
if [ -f nym-gateway ]; then
|
# steps
|
||||||
|
# we curl the existing binary from the release page of github
|
||||||
|
# we init the binary to check successful init
|
||||||
|
# then in our testing branch, we build the binary locally
|
||||||
|
# re run the init based upon the configuration injected
|
||||||
|
# we validate that no errors are return from upgrading the binary against the test
|
||||||
|
|
||||||
|
# install the current release binary
|
||||||
|
# so this is dependant on running on a linux machine for the time being
|
||||||
|
|
||||||
|
curl -L https://github.com/nymtech/nym/releases/download/nym-binaries-${RELEASE_VERSION_NUMBER}/$BINARY_NAME -o $BINARY_NAME
|
||||||
|
chmod u+x $BINARY_NAME
|
||||||
|
|
||||||
|
#--------------------------------------
|
||||||
|
# functions
|
||||||
|
#--------------------------------------
|
||||||
|
|
||||||
|
check_gateway_binary_build() if [ -f nym-gateway ]; then
|
||||||
echo "running init tests"
|
echo "running init tests"
|
||||||
# we wont use config env files for now
|
# we wont use config env files for now
|
||||||
# unless we want to use a specific environment
|
# unless we want to use a specific environment
|
||||||
OUTPUT=$(./nym-gateway --output json init --id ${ID} --host ${MOCK_HOST} --wallet-address ${WALLET_ADDRESS_CONST}) > /dev/null 2>&1
|
OUTPUT=$(./nym-gateway --output json init --id ${ID} --host ${MOCK_HOST} --wallet-address ${WALLET_ADDRESS_CONST}) >/dev/null 2>&1
|
||||||
|
|
||||||
# get jq values for things we can assert against
|
# get jq values for things we can assert against
|
||||||
VALUE=$(echo ${OUTPUT} | jq .wallet_address)
|
VALUE=$(echo ${OUTPUT} | jq .wallet_address)
|
||||||
VALUE=${VALUE#\"}
|
VALUE=${VALUE#\"}
|
||||||
VALUE=${VALUE%\"}
|
VALUE=${VALUE%\"}
|
||||||
|
|
||||||
|
echo $OUTPUT
|
||||||
|
sleep 2
|
||||||
|
|
||||||
# do asserts here based upon the output on init
|
# do asserts here based upon the output on init
|
||||||
|
|
||||||
assert $(cat ${VALUE}) $(echo ${WALLET_ADDRESS_CONST})
|
assert $(echo ${VALUE}) $(echo ${WALLET_ADDRESS_CONST})
|
||||||
assert_end nym-gateway-tests
|
assert_end nym-gateway-tests
|
||||||
else
|
else
|
||||||
echo "exting test no binary found"
|
echo "exting test no binary found"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# we run the release version first
|
||||||
|
check_gateway_binary_build
|
||||||
|
# lets remove the binary then navigate to the target/release directory for checking the latest version
|
||||||
|
# expect to have successful output and configuration
|
||||||
|
|
||||||
|
if [ -f $BINARY_NAME ]; then
|
||||||
|
echo "removing nym-mixnode"
|
||||||
|
rm -rf $BINARY_NAME
|
||||||
|
else
|
||||||
|
echo "no binary found exiting"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we should expect it to pass because no errors should be presented when performing the upgrade of an init
|
||||||
|
# this should be caught at testing staage
|
||||||
|
check_gateway_binary_build
|
||||||
|
|||||||
@@ -4,31 +4,86 @@
|
|||||||
|
|
||||||
PWD="../"
|
PWD="../"
|
||||||
RELEASE_DIRECTORY="target/release"
|
RELEASE_DIRECTORY="target/release"
|
||||||
VERSION_NUMBER=$1
|
RELEASE_VERSION_NUMBER=$1
|
||||||
WALLET_ADDRESS_CONST=n1435n84se65tn7yv536am0sfvng4yyrwj7thhxr
|
WALLET_ADDRESS_CONST=n1435n84se65tn7yv536am0sfvng4yyrwj7thhxr
|
||||||
MOCK_HOST="1.2.3.4"
|
MOCK_HOST="1.2.3.4"
|
||||||
OUTPUT=$(for i in {1..8}; do echo -n $(( $RANDOM % 10 )); done)
|
OUTPUT=$(for i in {1..8}; do echo -n $(($RANDOM % 10)); done)
|
||||||
ID="test-${OUTPUT}"
|
ID="test-${OUTPUT}"
|
||||||
|
BINARY_NAME="nym-mixnode"
|
||||||
|
|
||||||
echo "the version number is ${VERSION_NUMBER}"
|
echo "the version number is ${VERSION_NUMBER} to be installed from github"
|
||||||
|
|
||||||
cd $PWD/$RELEASE_DIRECTORY
|
# steps
|
||||||
|
# we curl the existing binary from the release page of github
|
||||||
|
# we init the binary to check successful init
|
||||||
|
# then in our testing branch, we build the binary locally
|
||||||
|
# re run the init based upon the configuration injected
|
||||||
|
# we validate that no errors are return from upgrading the binary against the test
|
||||||
|
|
||||||
if [ -f nym-mixnode ]; then
|
# install the current release binary
|
||||||
echo "running init tests"
|
# so this is dependant on running on a linux machine for the time being
|
||||||
# we wont use config env files for now
|
curl -L "https://github.com/nymtech/nym/releases/download/nym-binaries-${RELEASE_VERSION_NUMBER}/${BINARY_NAME}" -o nym-mixnode
|
||||||
OUTPUT=$(./nym-mixnode --output json init --id ${ID} --host ${MOCK_HOST} --wallet-address ${WALLET_ADDRESS_CONST}) > /dev/null 2>&1
|
chmod u+x "$BINARY_NAME"
|
||||||
|
|
||||||
# get jq values for things we can assert against
|
|
||||||
# tidy this bit up - okay for first push
|
|
||||||
VALUE=$(echo ${OUTPUT} | jq .wallet_address)
|
|
||||||
VALUE=${VALUE#\"}
|
|
||||||
VALUE=${VALUE%\"}
|
|
||||||
|
|
||||||
# do asserts here based upon the output on init
|
|
||||||
|
|
||||||
assert $(cat ${VALUE}) $(echo ${WALLET_ADDRESS_CONST})
|
#--------------------------------------
|
||||||
assert_end nym-mixnode-tests
|
# functions
|
||||||
|
#--------------------------------------
|
||||||
|
check_mixnode_binary_build() {
|
||||||
|
if [ -f "$BINARY_NAME" ]; then
|
||||||
|
echo "running init tests"
|
||||||
|
# we wont use config env files for now
|
||||||
|
OUTPUT=$(./${BINARY_NAME} --output json init --id ${ID} --host ${MOCK_HOST} --wallet-address ${WALLET_ADDRESS_CONST} > /dev/null)
|
||||||
|
# get jq values for things we can assert against
|
||||||
|
# tidy this bit up - okay for first push
|
||||||
|
|
||||||
|
VALUE="$(echo ${OUTPUT} | jq .wallet_address | tr -d '"')"
|
||||||
|
|
||||||
|
# do asserts here based upon the output on init
|
||||||
|
assert "echo ${VALUE}" $(echo ${WALLET_ADDRESS_CONST})
|
||||||
|
assert_end nym-mixnode-tests
|
||||||
|
else
|
||||||
|
echo "exiting test no binary found"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#-------------------------------
|
||||||
|
# tests
|
||||||
|
#-------------------------------
|
||||||
|
|
||||||
|
# we run the release version first
|
||||||
|
check_mixnode_binary_build
|
||||||
|
# whoami
|
||||||
|
# this is dependant on where it runs on ci potentially, will need to tweak this in the future
|
||||||
|
first_init=$(cat /root/.nym/mixnodes/${ID}/config/config.toml | grep -v "^\[mixnode\]$" | grep -v "^version =")
|
||||||
|
|
||||||
|
#lets remove the binary then navigate to the target/release directory for checking the latest version
|
||||||
|
if [ -f "$BINARY_NAME" ]; then
|
||||||
|
echo "removing nym-mixnode"
|
||||||
|
rm -rf "$BINARY_NAME"
|
||||||
|
echo "successfully removed nym-mixnode"
|
||||||
else
|
else
|
||||||
echo "exting test no binary found"
|
echo "no binary found exiting"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# we should expect it to pass because no errors should be presented when performing the upgrade of an init
|
||||||
|
# this should be caught at testing stage
|
||||||
|
# navigate to latest binary build
|
||||||
|
cd $PWD$RELEASE_DIRECTORY
|
||||||
|
#re run against the current binary built locally
|
||||||
|
check_mixnode_binary_build
|
||||||
|
|
||||||
|
echo "diff the config files after each init"
|
||||||
|
echo "-------------------------------------"
|
||||||
|
|
||||||
|
second_init=$(cat /root/.nym/mixnodes/${ID}/config/config.toml | grep -v "^\[mixnode\]$" | grep -v "^version =")
|
||||||
|
|
||||||
|
diff -w <(echo "$first_init") <(echo "$second_init")
|
||||||
|
|
||||||
|
# check the status of the diff
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "no differences in config files, exiting script"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "there are differences in the config files, it may require a fresh init on the binary"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user