Update fixturenet eth test #506
							
								
								
									
										36
									
								
								.gitea/workflows/fixturenet-eth-plugeth-test.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								.gitea/workflows/fixturenet-eth-plugeth-test.yml
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||||
| @ -4,6 +4,11 @@ on: | |||||||
|   push: |   push: | ||||||
|     branches: 'ci-test' |     branches: 'ci-test' | ||||||
| 
 | 
 | ||||||
|  | # Needed until we can incorporate docker startup into the executor container | ||||||
|  | env: | ||||||
|  |   DOCKER_HOST: unix:///var/run/dind.sock | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| jobs: | jobs: | ||||||
|   test: |   test: | ||||||
|     name: "Run an Ethereum fixturenet test" |     name: "Run an Ethereum fixturenet test" | ||||||
| @ -23,5 +28,10 @@ jobs: | |||||||
|         run: ./scripts/create_build_tag_file.sh |         run: ./scripts/create_build_tag_file.sh | ||||||
|       - name: "Build local shiv package" |       - name: "Build local shiv package" | ||||||
|         run: ./scripts/build_shiv_package.sh |         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" |       - name: "Run fixturenet-eth tests" | ||||||
|         run: ./tests/fixturenet-eth/run-test.sh |         run: ./tests/fixturenet-eth/run-test.sh | ||||||
|  | 
 | ||||||
|  | |||||||
| @ -37,3 +37,4 @@ jobs: | |||||||
|           sleep 5 |           sleep 5 | ||||||
|       - name: "Run smoke tests" |       - name: "Run smoke tests" | ||||||
|         run: ./tests/smoke-test/run-smoke-test.sh |         run: ./tests/smoke-test/run-smoke-test.sh | ||||||
|  | 
 | ||||||
|  | |||||||
| @ -6,4 +6,4 @@ source ${CERC_CONTAINER_BASE_DIR}/build-base.sh | |||||||
| # See: https://stackoverflow.com/a/246128/1701505 | # See: https://stackoverflow.com/a/246128/1701505 | ||||||
| SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) | SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) | ||||||
| 
 | 
 | ||||||
| docker build -t cerc/lighthouse:local ${build_command_args} ${SCRIPT_DIR} | docker build -t cerc/lighthouse:local ${build_command_args} --build-arg TAG_SUFFIX="" ${SCRIPT_DIR} | ||||||
|  | |||||||
							
								
								
									
										44
									
								
								tests/fixturenet-eth-plugeth/run-test.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								tests/fixturenet-eth-plugeth/run-test.sh
									
									
									
									
									
										Executable file
									
								
							| @ -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 | ||||||
| @ -4,36 +4,45 @@ if [ -n "$CERC_SCRIPT_DEBUG" ]; then | |||||||
|   set -x |   set -x | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| echo "Running stack-orchestrator Ethereum fixturenet test" | echo "$(date +"%Y-%m-%d %T"): Running stack-orchestrator Ethereum fixturenet test" | ||||||
| # Bit of a hack, test the most recent package | # Bit of a hack, test the most recent package | ||||||
| TEST_TARGET_SO=$( ls -t1 ./package/laconic-so* | head -1 ) | TEST_TARGET_SO=$( ls -t1 ./package/laconic-so* | head -1 ) | ||||||
| # Set a new unique repo dir | # Set a new unique repo dir | ||||||
| export CERC_REPO_BASE_DIR=$(mktemp -d stack-orchestrator-fixturenet-eth-test.XXXXXXXXXX) | export CERC_REPO_BASE_DIR=$(mktemp -d stack-orchestrator-fixturenet-eth-test.XXXXXXXXXX) | ||||||
| echo "Testing this package: $TEST_TARGET_SO" | echo "$(date +"%Y-%m-%d %T"): Testing this package: $TEST_TARGET_SO" | ||||||
| echo "Test version command" | echo "$(date +"%Y-%m-%d %T"): Test version command" | ||||||
| reported_version_string=$( $TEST_TARGET_SO version ) | reported_version_string=$( $TEST_TARGET_SO version ) | ||||||
| echo "Version reported is: ${reported_version_string}" | echo "$(date +"%Y-%m-%d %T"): Version reported is: ${reported_version_string}" | ||||||
| echo "Cloning repositories into: $CERC_REPO_BASE_DIR" | echo "$(date +"%Y-%m-%d %T"): Cloning repositories into: $CERC_REPO_BASE_DIR" | ||||||
| $TEST_TARGET_SO --stack fixturenet-eth setup-repositories | $TEST_TARGET_SO --stack fixturenet-eth setup-repositories | ||||||
|  | echo "$(date +"%Y-%m-%d %T"): Building containers" | ||||||
| $TEST_TARGET_SO --stack fixturenet-eth build-containers | $TEST_TARGET_SO --stack fixturenet-eth build-containers | ||||||
|  | echo "$(date +"%Y-%m-%d %T"): Starting stack" | ||||||
| $TEST_TARGET_SO --stack fixturenet-eth deploy up | $TEST_TARGET_SO --stack fixturenet-eth deploy up | ||||||
|  | echo "$(date +"%Y-%m-%d %T"): Stack started" | ||||||
| # Verify that the fixturenet is up and running | # Verify that the fixturenet is up and running | ||||||
| $TEST_TARGET_SO --stack fixturenet-eth deploy ps | $TEST_TARGET_SO --stack fixturenet-eth deploy ps | ||||||
| $TEST_TARGET_SO --stack fixturenet-eth deploy exec fixturenet-eth-bootnode-lighthouse /scripts/status-internal.sh | # echo "$(date +"%Y-%m-%d %T"): Getting stack status" | ||||||
|  | # $TEST_TARGET_SO --stack fixturenet-eth deploy exec fixturenet-eth-bootnode-lighthouse /scripts/status-internal.sh | ||||||
|  | echo "$(date +"%Y-%m-%d %T"): Getting initial block number" | ||||||
| initial_block_number=$($TEST_TARGET_SO --stack fixturenet-eth deploy exec foundry "cast block-number") | initial_block_number=$($TEST_TARGET_SO --stack fixturenet-eth deploy exec foundry "cast block-number") | ||||||
| # Check that the block number increases some time later | # Check that the block number increases some time later | ||||||
| sleep 12 | sleep 120 | ||||||
|  | echo "$(date +"%Y-%m-%d %T"): Getting subsequent block number" | ||||||
| subsequent_block_number=$($TEST_TARGET_SO  --stack fixturenet-eth deploy exec foundry "cast block-number") | subsequent_block_number=$($TEST_TARGET_SO  --stack fixturenet-eth deploy exec foundry "cast block-number") | ||||||
| block_number_difference=$((subsequent_block_number - initial_block_number)) | block_number_difference=$((subsequent_block_number - initial_block_number)) | ||||||
| # Block height difference should be between 1 and some small number | # Block height difference should be between 1 and some small number | ||||||
| if [[ $block_number_difference -gt 1 && $block_number_difference -lt 10 ]]; then | if [[ $block_number_difference -gt 1 && $block_number_difference -lt 100 ]]; then | ||||||
|   echo "Test passed" |   echo "Test passed" | ||||||
|   test_result=0 |   test_result=0 | ||||||
| else | else | ||||||
|   echo "Test failed: block numbers were ${initial_block_number} and ${subsequent_block_number}" |   echo "Test failed: block numbers were ${initial_block_number} and ${subsequent_block_number}" | ||||||
|  |   echo "Logs from stack:" | ||||||
|  |   $TEST_TARGET_SO --stack fixturenet-eth deploy logs | ||||||
|   test_result=1 |   test_result=1 | ||||||
| fi | fi | ||||||
| $TEST_TARGET_SO --stack fixturenet-eth deploy down | $TEST_TARGET_SO --stack fixturenet-eth deploy down | ||||||
| echo "Removing cloned repositories" | echo "$(date +"%Y-%m-%d %T"): Removing cloned repositories" | ||||||
| rm -rf $CERC_REPO_BASE_DIR | rm -rf $CERC_REPO_BASE_DIR | ||||||
|  | echo "$(date +"%Y-%m-%d %T"): Test finished" | ||||||
| exit $test_result | exit $test_result | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user