From 8c3a8eb33df9da62ceb04b536a5ad817f4ebd1a1 Mon Sep 17 00:00:00 2001 From: David Boreham Date: Thu, 25 May 2023 16:56:59 -0600 Subject: [PATCH] Add fixturenet-plugeth test --- .../workflows/fixturenet-eth-plugeth-test.yml | 36 +++++++++++++++ tests/fixturenet-eth-plugeth/run-test.sh | 44 +++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 .gitea/workflows/fixturenet-eth-plugeth-test.yml create mode 100755 tests/fixturenet-eth-plugeth/run-test.sh diff --git a/.gitea/workflows/fixturenet-eth-plugeth-test.yml b/.gitea/workflows/fixturenet-eth-plugeth-test.yml new file mode 100644 index 00000000..ced0823f --- /dev/null +++ b/.gitea/workflows/fixturenet-eth-plugeth-test.yml @@ -0,0 +1,36 @@ +name: Fixturenet-Eth-Plugeth-Test + +on: + push: + branches: 'ci-test' + +# Needed until we can incorporate docker startup into the executor container +env: + DOCKER_HOST: unix:///var/run/dind.sock + + +jobs: + test: + name: "Run an Ethereum plugeth fixturenet test" + runs-on: ubuntu-latest + steps: + - name: "Clone project repository" + uses: actions/checkout@v3 + - name: "Install Python" + uses: cerc-io/setup-python@v4 + with: + python-version: '3.8' + - name: "Print Python version" + run: python3 --version + - name: "Install shiv" + run: pip install shiv + - name: "Generate build version file" + run: ./scripts/create_build_tag_file.sh + - name: "Build local shiv package" + run: ./scripts/build_shiv_package.sh + - name: Start dockerd # Also needed until we can incorporate into the executor + run: | + dockerd -H $DOCKER_HOST --userland-proxy=false & + sleep 5 + - name: "Run fixturenet-eth tests" + run: ./tests/fixturenet-eth-plugeth/run-test.sh diff --git a/tests/fixturenet-eth-plugeth/run-test.sh b/tests/fixturenet-eth-plugeth/run-test.sh new file mode 100755 index 00000000..1a961b56 --- /dev/null +++ b/tests/fixturenet-eth-plugeth/run-test.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +set -e +if [ -n "$CERC_SCRIPT_DEBUG" ]; then + set -x +fi +set -e +echo "Running stack-orchestrator Ethereum plugeth fixturenet test" +# Bit of a hack, test the most recent package +TEST_TARGET_SO=$( ls -t1 ./package/laconic-so* | head -1 ) +CERC_STACK_NAME=fixturenet-plugeth-tx +# Set a new unique repo dir +export CERC_REPO_BASE_DIR=$(mktemp -d stack-orchestrator-fixturenet-eth-test.XXXXXXXXXX) +echo "Testing this package: $TEST_TARGET_SO" +echo "Test version command" +reported_version_string=$( $TEST_TARGET_SO version ) +echo "Version reported is: ${reported_version_string}" +echo "Cloning repositories into: $CERC_REPO_BASE_DIR" +$TEST_TARGET_SO --stack $CERC_STACK_NAME setup-repositories +echo "Building containers" +$TEST_TARGET_SO --stack $CERC_STACK_NAME build-containers +echo "Images in registry:" +docker image ls +echo "Deploying the cluster" +$TEST_TARGET_SO --stack $CERC_STACK_NAME deploy up +# Verify that the fixturenet is up and running +$TEST_TARGET_SO --stack $CERC_STACK_NAME deploy ps +$TEST_TARGET_SO --stack $CERC_STACK_NAME deploy exec fixturenet-eth-bootnode-lighthouse /scripts/status-internal.sh +initial_block_number=$($TEST_TARGET_SO --stack fixturenet-plugeth-tx deploy exec foundry "cast block-number") +# Check that the block number increases some time later +sleep 12 +subsequent_block_number=$($TEST_TARGET_SO --stack $CERC_STACK_NAME deploy exec foundry "cast block-number") +block_number_difference=$((subsequent_block_number - initial_block_number)) +# Block height difference should be between 1 and some small number +if [[ $block_number_difference -gt 1 && $block_number_difference -lt 10 ]]; then + echo "Test passed" + test_result=0 +else + echo "Test failed: block numbers were ${initial_block_number} and ${subsequent_block_number}" + test_result=1 +fi +$TEST_TARGET_SO --stack $CERC_STACK_NAME deploy down +echo "Removing cloned repositories" +rm -rf $CERC_REPO_BASE_DIR +exit $test_result