diff --git a/playbooks/dev/execution-spec-tests-dependencies.yaml b/playbooks/dev/execution-spec-tests-dependencies.yaml index 97238f8c..9256b567 100644 --- a/playbooks/dev/execution-spec-tests-dependencies.yaml +++ b/playbooks/dev/execution-spec-tests-dependencies.yaml @@ -9,6 +9,5 @@ tasks: command: | sudo dpkg --add-architecture amd64 sudo apt-get update - sudo apt-get install -y build-essential python3 python3-pip libc6:amd64 + sudo apt-get install -y build-essential python3 python3-pip python3-dev libc6:amd64 autoconf automake libffi-dev libtool pkg-config sudo rm /usr/lib/python3*/EXTERNALLY-MANAGED 2>/dev/null || true - diff --git a/playbooks/dev/execution-spec-tests-execute.yaml b/playbooks/dev/execution-spec-tests-execute.yaml index aa8f0160..097626b6 100644 --- a/playbooks/dev/execution-spec-tests-execute.yaml +++ b/playbooks/dev/execution-spec-tests-execute.yaml @@ -48,7 +48,7 @@ tasks: # Create dir for temp files if [ -z "$SPEC_TESTS_PATH" ]; then tmp_dir=$(mktemp -d -t execution-spec-tests-XXXXXXXXXX) - + echo "============================" echo "Temp dir created: ${tmp_dir}" echo "============================" @@ -59,7 +59,7 @@ tasks: echo "============================" echo "Clone git repo ${GIT_REPO} @ ${GIT_BRANCH}" echo "============================" - git clone ${GIT_REPO} --branch ${GIT_BRANCH} --single-branch $SPEC_TESTS_PATH + git clone ${GIT_REPO} --depth 1 --branch ${GIT_BRANCH} --single-branch $SPEC_TESTS_PATH cd $SPEC_TESTS_PATH export HOME=$SPEC_TESTS_PATH @@ -70,8 +70,6 @@ tasks: echo "============================" pip install uv uv sync --all-extras - uv run solc-select use "${SOLC_VERSION}" --always-install - - name: generate_child_wallet id: testwallet if: runTests @@ -204,4 +202,4 @@ tasks: if [ "${passedTests}" != "${totalTests}" ]; then echo "Some tests failed, see report.html in the task above for details" exit 1 - fi \ No newline at end of file + fi diff --git a/playbooks/glamsterdam-dev/execution-sec-tests-sequential.yaml b/playbooks/glamsterdam-dev/execution-sec-tests-sequential.yaml new file mode 100644 index 00000000..6bc88103 --- /dev/null +++ b/playbooks/glamsterdam-dev/execution-sec-tests-sequential.yaml @@ -0,0 +1,109 @@ +id: glamsterdam-execution-spec-tests-sequential-glamsterdam +name: "Run execution spec tests sequentially" +timeout: 4h +config: + walletPrivkey: "" + walletSeed: "spectests" + specTestsBranch: "main" +tasks: + # setup dependencies + - name: run_external_tasks + title: "Setup dependencies for execution spec tests" + timeout: 30m + config: + testFile: /tests/execution-spec-tests-dependencies.yaml + + - name: run_shell + title: "Create temp dir for execution spec tests" + id: tempdir + config: + shell: bash + command: | + set -e + tmp_dir=$(mktemp -d -t execution-spec-tests-XXXXXXXXXX) + + echo "============================" + echo "Temp dir created: ${tmp_dir}" + echo "============================" + + echo "::set-output path ${tmp_dir}" + + echo "$tmp_dir" > $ASSERTOOR_SUMMARY + + - name: run_external_tasks + title: "Clone and prepare execution spec tests" + timeout: 10m + config: + testFile: /tests/execution-spec-tests-execute.yaml + testConfig: + gitRepo: https://github.com/ethereum/execution-spec-tests.git + runTests: false + testConfigVars: + specTestsPath: "tasks.tempdir.outputs.path" + gitBranch: "specTestsBranch" + + - name: check_clients_are_healthy + title: "Check if at least one client is ready" + id: clientCheck + timeout: 5m + config: + minClientCount: 1 + + - name: generate_child_wallet + id: specTestsWallet + title: "Generate main wallet for tests" + config: + prefundMinBalance: 1000000000000000000000000 # ensure a balance of 10000 ETH + configVars: + privateKey: "walletPrivkey" + walletSeed: "walletSeed" + + # wait for gloas activation + - name: get_consensus_specs + id: consensusSpecs + title: "Get consensus chain specs" + - name: check_consensus_slot_range + title: "Wait for gloas activation" + timeout: 1h + configVars: + minEpochNumber: "tasks.consensusSpecs.outputs.specs.GLOAS_FORK_EPOCH" + + # run execution spec tests + - name: run_tasks + title: "Run execution spec tests" + id: tests + config: + continueOnFailure: true + tasks: + - name: run_external_tasks + title: "Run execution spec tests: tests/amsterdam/eip7928_block_level_access_lists" + timeout: 2h + config: + testFile: /tests/execution-spec-tests-execute.yaml + testConfig: + gitRepo: https://github.com/ethereum/execution-spec-tests.git + testPath: ./tests/amsterdam/eip7928_block_level_access_lists + seedAmount: "10000000000000000000000" # 100 ETH + extraFlags: "--fork=Amsterdam -n 16" + runSetup: false + cleanupTestsPath: false + testConfigVars: + rpcEndpoint: "tasks.clientCheck.outputs.goodClients[0].elRpcUrl" + chainID: "tasks.consensusSpecs.outputs.specs.DEPOSIT_CHAIN_ID" + seedPrivateKey: "tasks.specTestsWallet.outputs.childWallet.privkey" + specTestsPath: "tasks.tempdir.outputs.path" + gitBranch: "specTestsBranch" +cleanupTasks: + - name: run_shell + title: "Cleanup temp dir for execution spec tests" + config: + shell: bash + envVars: + SPEC_TESTS_PATH: specTestsPath + command: | + set -e + SPEC_TESTS_PATH=$(echo $SPEC_TESTS_PATH | jq -r) + + if [ ! -z "$SPEC_TESTS_PATH" ]; then + rm -rf $SPEC_TESTS_PATH + fi