Skip to content

Commit

Permalink
ci: integration testing (#75)
Browse files Browse the repository at this point in the history
  • Loading branch information
fadeev authored Oct 12, 2023
1 parent e768cdf commit e8c4f8d
Show file tree
Hide file tree
Showing 3 changed files with 184 additions and 0 deletions.
24 changes: 24 additions & 0 deletions .github/integration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Integration Tests

on:
schedule:
- cron: "0 0 * * *" # Runs every day at midnight
workflow_dispatch:

jobs:
integration:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Install jq
run: |
sudo apt-get update
sudo apt-get install -y jq
- name: Integration
run: ./scripts/integration.sh
env:
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
Empty file added .github/workflows
Empty file.
160 changes: 160 additions & 0 deletions scripts/integration.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
#!/bin/bash

set -e

SENDER=0x2cD3D070aE1BD365909dD859d29F387AA96911e1

pushd "./omnichain/swap"

yarn

npx hardhat compile --force

echo "Testing omnichain Swap"

OMNI_SWAP_CONTRACT=$(npx hardhat deploy --network zeta_testnet --json | jq -r '.address')
# echo "omnichain.swap.zeta_testnet=$OMNI_SWAP_CONTRACT" >> contracts.toml
OMNI_SWAP_TX=$(npx hardhat interact --contract $OMNI_SWAP_CONTRACT --network goerli_testnet --amount 0.01 --recipient $SENDER --destination mumbai_testnet --json | jq -r '.hash')
echo $OMNI_SWAP_TX
OMNI_SWAP_CCTX=$(npx hardhat cctx $OMNI_SWAP_TX --json)
echo $OMNI_SWAP_CCTX

popd

pushd "./omnichain/staking"

yarn

npx hardhat compile --force

echo "Testing omnichain Staking"

OMNI_STAKING_CONTRACT=$(npx hardhat deploy --network zeta_testnet --chain goerli_testnet --json | jq -r '.address')

echo $OMNI_STAKING_CONTRACT

echo "Setting beneficiary"
OMNI_STAKING_BENEFICIARY_TX=$(npx hardhat set-beneficiary $SENDER --contract $OMNI_STAKING_CONTRACT --network goerli_testnet --json | jq -r '.hash')
echo $OMNI_STAKING_BENEFICIARY_TX
OMNI_STAKING_BENEFICIARY_CCTX=$(npx hardhat cctx $OMNI_STAKING_BENEFICIARY_TX --json)
echo $OMNI_STAKING_BENEFICIARY_CCTX

echo "Setting withdraw"
OMNI_STAKING_WITHDRAW_TX=$(npx hardhat set-withdraw --contract $OMNI_STAKING_CONTRACT --network goerli_testnet --json | jq -r '.hash')
echo $OMNI_STAKING_WITHDRAW_TX
OMNI_STAKING_WITHDRAW_CCTX=$(npx hardhat cctx $OMNI_STAKING_WITHDRAW_TX --json)
echo $OMNI_STAKING_WITHDRAW_CCTX

echo "Stake"
OMNI_STAKING_STAKE_TX=$(npx hardhat stake --amount 0.01 --contract $OMNI_STAKING_CONTRACT --network goerli_testnet --json | jq -r '.hash')
echo $OMNI_STAKING_STAKE_TX
OMNI_STAKING_STAKE_CCTX=$(npx hardhat cctx $OMNI_STAKING_STAKE_TX --json)
echo $OMNI_STAKING_STAKE_CCTX

echo "Unstake"
OMNI_STAKING_UNSTAKE_TX=$(npx hardhat unstake --contract $OMNI_STAKING_CONTRACT --network goerli_testnet --json | jq -r '.hash')
echo $OMNI_STAKING_UNSTAKE_TX
OMNI_STAKING_UNSTAKE_CCTX=$(npx hardhat cctx $OMNI_STAKING_UNSTAKE_TX --json)
echo $OMNI_STAKING_UNSTAKE_CCTX

popd

pushd "./messaging/message"

yarn

npx hardhat compile --force

echo "Testing CCM Message"

CCM_MESSAGE_CONTRACT=$(npx hardhat deploy --networks goerli_testnet,mumbai_testnet --json)
CCM_MESSAGE_TX_OUT=$(npx hardhat interact --network goerli_testnet --contract $(echo $CCM_MESSAGE_CONTRACT | jq -r '.goerli_testnet') --message "Hello World" --destination mumbai_testnet --amount 0.01 --json )
echo $CCM_MESSAGE_TX_OUT
CCM_MESSAGE_TX=$(echo $CCM_MESSAGE_TX_OUT | jq -r '.hash')
echo $CCM_MESSAGE_TX
CCM_MESSAGE_CCTX=$(npx hardhat cctx $CCM_MESSAGE_TX --json)
echo $CCM_MESSAGE_CCTX

popd

pushd "./messaging/warriors"

yarn

npx hardhat compile --force

echo "Testing CCM Warriors"

CCM_NFT_CONTRACT=$(npx hardhat deploy --networks goerli_testnet,mumbai_testnet --json | jq -r '.goerli_testnet')
echo $CCM_NFT_CONTRACT

CCM_NFT_MINT=$(npx hardhat mint --network goerli_testnet --contract $CCM_NFT_CONTRACT --json)
CCM_NFT_TX_OUT=$(npx hardhat interact --network goerli_testnet --contract $CCM_NFT_CONTRACT --token $CCM_NFT_MINT --destination mumbai_testnet --amount 0.01 --to $SENDER --json)
echo $CCM_NFT_TX_OUT
CCM_NFT_TX=$(echo $CCM_NFT_TX_OUT | jq -r '.hash')
echo $CCM_NFT_TX
CCM_NFT_CCTX=$(npx hardhat cctx $CCM_NFT_TX --json)
echo $CCM_NFT_CCTX

popd

pushd "./messaging/counter"

yarn

npx hardhat compile --force

echo "Testing CCM Counter"

CCM_COUNTER_CONTRACT=$(npx hardhat deploy --networks goerli_testnet,mumbai_testnet --json | jq -r '.goerli_testnet')
echo $CCM_COUNTER_CONTRACT
CCM_COUNTER_TX_OUT=$(npx hardhat interact --network goerli_testnet --contract $CCM_COUNTER_CONTRACT --destination mumbai_testnet --amount 0.01 --json)
echo $CCM_COUNTER_TX_OUT
CCM_COUNTER_TX=$(echo $CCM_COUNTER_TX_OUT | jq -r '.hash')
echo $CCM_COUNTER_TX
CCM_COUNTER_CCTX=$(npx hardhat cctx $CCM_COUNTER_TX --json)
echo $CCM_COUNTER_CCTX

popd

pushd "./messaging/value"

yarn

npx hardhat compile --force

echo "Testing CCM Value"

CCM_VALUE_CONTRACT=$(npx hardhat deploy --networks goerli_testnet,mumbai_testnet --json | jq -r '.goerli_testnet')
echo $CCM_VALUE_CONTRACT
PROTOCOL_FEE=$(npx hardhat fees --json | jq -r ".feesCCM.mumbai_testnet.protocolFee")
GAS_FEE=$(npx hardhat fees --json | jq -r ".feesCCM.mumbai_testnet.gasFee")
# Multiply to be on the safe side
CCM_FEE=$(echo "$PROTOCOL_FEE + $GAS_FEE * 3" | bc -l)
CCM_VALUE_TX_OUT=$(npx hardhat interact --network goerli_testnet --contract $CCM_VALUE_CONTRACT --destination mumbai_testnet --amount $CCM_FEE --json)
echo $CCM_VALUE_TX_OUT
CCM_VALUE_TX=$(echo $CCM_VALUE_TX_OUT | jq -r '.hash')
echo $CCM_VALUE_TX
CCM_VALUE_CCTX=$(npx hardhat cctx $CCM_VALUE_TX --json)
echo $CCM_VALUE_CCTX

popd

pushd "./omnichain/multioutput"

yarn

npx hardhat compile --force

echo "Testing omnichain Multioutput"

OMNI_MULTIOUTPUT_CONTRACT=$(npx hardhat deploy --network zeta_testnet --json | jq -r '.address')
echo $OMNI_MULTIOUTPUT_CONTRACT

npx hardhat destination --contract $OMNI_MULTIOUTPUT_CONTRACT --network zeta_testnet --destination mumbai_testnet
OMNI_MULTIOUTPUT_TX=$(npx hardhat interact --contract $OMNI_MULTIOUTPUT_CONTRACT --network goerli_testnet --amount 0.01 --recipient $SENDER --json | jq -r '.hash')
echo $OMNI_MULTIOUTPUT_TX
OMNI_MULTIOUTPUT_CCTX=$(npx hardhat cctx $OMNI_MULTIOUTPUT_TX --json)
echo $OMNI_MULTIOUTPUT_CCTX

popd

0 comments on commit e8c4f8d

Please sign in to comment.