Skip to content

Send channel tlc info directly to counterparty and update network graph with owned channel information #2053

Send channel tlc info directly to counterparty and update network graph with owned channel information

Send channel tlc info directly to counterparty and update network graph with owned channel information #2053

Workflow file for this run

on: [push, pull_request]
name: E2E tests
jobs:
e2e-testing:
strategy:
fail-fast: false
matrix:
workflow:
- 3-nodes-transfer
- invoice-ops
- open-use-close-a-channel
- udt
- reestablish
- cross-chain-hub
- router-pay
- udt-router-pay
- watchtower
release:
- "0.116.1"
test_env:
- "test"
extra_bru_args:
- ""
include:
# add an extra workflow to run udt using the env file xudt-test
- workflow: "udt"
test_env: "xudt-test"
release: "0.116.1"
# add an extra workflow to run 3-nodes-transfer with sha256 hash algorithm
- workflow: "3-nodes-transfer"
test_env: "test"
release: "0.116.1"
extra_bru_args: "--env-var HASH_ALGORITHM=sha256"
name: e2e test for ${{ matrix.workflow }} --env ${{ matrix.test_env }} ${{ matrix.extra_bru_args }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: Swatinem/rust-cache@v2
- uses: dsherret/rust-toolchain-file@v1
- name: Install dependencies
run: |
version=${{ matrix.release }}
wget "https://github.com/nervosnetwork/ckb/releases/download/v${version}/ckb_v${version}_x86_64-unknown-linux-gnu-portable.tar.gz"
tar -xvaf "ckb_v${version}_x86_64-unknown-linux-gnu-portable.tar.gz"
sudo mv "ckb_v${version}_x86_64-unknown-linux-gnu-portable"/* /usr/local/bin/
if [ ${{ matrix.workflow }} = "cross-chain-hub" ]; then
wget "https://bitcoin.org/bin/bitcoin-core-27.0/bitcoin-27.0-x86_64-linux-gnu.tar.gz"
tar -xvaf "bitcoin-27.0-x86_64-linux-gnu.tar.gz"
echo "$(pwd)/bitcoin-27.0/bin" >> $GITHUB_PATH
wget "https://github.com/lightningnetwork/lnd/releases/download/v0.18.0-beta/lnd-linux-amd64-v0.18.0-beta.tar.gz"
tar -xvaf "lnd-linux-amd64-v0.18.0-beta.tar.gz"
echo "$(pwd)/lnd-linux-amd64-v0.18.0-beta" >> $GITHUB_PATH
fi
- name: Run e2e workflow
run: |
set -euo pipefail
if [ ${{ matrix.workflow }} = "cross-chain-hub" ]; then
./tests/deploy/lnd-init/setup-lnd.sh
fi
# Prebuild the program so that we can run the following script faster
cargo build
cd tests/deploy/udt-init && cargo build && cd -
if [ ${{ matrix.workflow }} = "router-pay" ]; then
export START_BOOTNODE=y
fi
export ON_GITHUB_ACTION=y
./tests/nodes/start.sh &
# Wait for the nodes to start, the initialization takes some time
# check all the ports are open
# when .ports file is not generated, we will retry 20 times to check if all ports are open
port_file=./tests/nodes/.ports
retry_count=0
while [ $retry_count -lt 100 ]; do
if [ -f $port_file ]; then
break
else
retry_count=$((retry_count + 1))
echo "File $port_file not found. Retrying in 2 seconds..."
sleep 2
fi
done
ports=()
while IFS= read -r line; do
ports+=("$line")
done < ./tests/nodes/.ports
echo "Checking if all ports are open ... ${ports[@]}"
try_number=60
count=0
while [ $count -lt $try_number ]; do
all_open=true
for port in "${ports[@]}"; do
if ! nc -z 127.0.0.1 $port; then
echo "Port $port is not open yet ..."
all_open=false
break
fi
done
if $all_open; then
echo "All ports are open now ..."
break
else
count=$((count + 1))
if [ $count -eq $try_number ]; then
echo "Reached maximum number of tries ($try_number), exiting with status 1"
exit 1
fi
echo "Not all ports are open, waiting 3 seconds before retrying"
sleep 3
fi
done
(cd ./tests/bruno; npm exec -- @usebruno/[email protected] run e2e/${{ matrix.workflow }} -r --env ${{ matrix.test_env }} ${{ matrix.extra_bru_args }} ) &
# -n means we will exit when any of the background processes exits.
# https://www.gnu.org/software/bash/manual/bash.html#index-wait
wait -n