Skip to content

Commit 8435e43

Browse files
feat(ci,tox): Create tests-deployed-zkevm tox env, and ci workflow (#1617)
Co-authored-by: danceratopz <danceratopz@gmail.com>
1 parent 04abde5 commit 8435e43

File tree

4 files changed

+45
-3
lines changed

4 files changed

+45
-3
lines changed

.github/workflows/tox_verify.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,3 +160,34 @@ jobs:
160160
env:
161161
EELS_RESOLUTIONS_FILE: ${{ github.workspace }}/.github/configs/eels_resolutions.json
162162
run: uvx --with=tox-uv tox -e tests-deployed
163+
tests_deployed_zkevm:
164+
name: Fill zkEVM test cases, deployed, ${{ matrix.os }}, ${{ matrix.python }}
165+
runs-on: ${{ matrix.os }}
166+
strategy:
167+
matrix:
168+
include:
169+
# Still getting requests.exceptions.ReadTimeout: UnixHTTPConnectionPool() in CI, even with local EELS
170+
# - os: ubuntu-latest
171+
# python: "3.10"
172+
- os: ubuntu-latest
173+
python: "3.11"
174+
- os: macos-latest
175+
python: "3.12"
176+
steps:
177+
- name: Checkout ethereum/execution-spec-tests
178+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
179+
- name: Install uv ${{ vars.UV_VERSION }} and python ${{ matrix.python }}
180+
uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182
181+
with:
182+
enable-cache: true
183+
cache-dependency-glob: "uv.lock"
184+
version: ${{ vars.UV_VERSION }}
185+
python-version: ${{ matrix.python }}
186+
- name: Build EVMONE EVM
187+
uses: ./.github/actions/build-evm-client/evmone
188+
with:
189+
targets: "evmone-t8n"
190+
- name: Run tox - fill tests for deployed forks
191+
env:
192+
EELS_RESOLUTIONS_FILE: ${{ github.workspace }}/.github/configs/eels_resolutions.json
193+
run: uvx --with=tox-uv tox -e tests-deployed-zkevm

docs/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ The output behavior of `fill` has changed ([#1608](https://github.com/ethereum/e
2222
- 🔀 Refactor: Encapsulate `fill`'s fixture output options (`--output`, `--flat-output`, `--single-fixture-per-file`) into a `FixtureOutput` class ([#1471](https://github.com/ethereum/execution-spec-tests/pull/1471),[#1612](https://github.com/ethereum/execution-spec-tests/pull/1612)).
2323
- ✨ Don't warn about a "high Transaction gas_limit" for `zkevm` tests ([#1598](https://github.com/ethereum/execution-spec-tests/pull/1598)).
2424
- 🐞 `fill` no longer writes generated fixtures into an existing, non-empty output directory; it must now be empty or `--clean` must be used to delete it first ([#1608](https://github.com/ethereum/execution-spec-tests/pull/1608)).
25+
- 🐞 zkEVM marked tests have been removed from `tests-deployed` tox environment into its own separate workflow `tests-deployed-zkevm` and are filled by `evmone-t8n` ([#1617](https://github.com/ethereum/execution-spec-tests/pull/1617)).
2526

2627
#### `consume`
2728

tox.ini

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ env_list =
77
spellcheck
88
pytest
99
tests-deployed
10+
tests-deployed-zkevm
1011
mkdocs
1112

1213
[testenv]
@@ -68,20 +69,25 @@ develop = Prague
6869
eip7692 = EOFv1
6970

7071
[testenv:tests-deployed]
71-
description = Fill test cases in ./tests/ for deployed mainnet forks.
72+
description = Fill test cases in ./tests/ for deployed mainnet forks, except for slow/zkevm.
7273
setenv =
7374
# Use custom EELS_RESOLUTIONS_FILE if it is set via the environment (eg, in CI)
7475
EELS_RESOLUTIONS_FILE = {env:EELS_RESOLUTIONS_FILE:}
7576
commands_pre = solc-select use {[testenv]solc_version} --always-install
76-
commands = pytest -n auto -k "not slow" --skip-evm-dump --output=/tmp/fixtures-tox --clean
77+
commands = pytest -n auto -m "not slow and not zkevm" --skip-evm-dump --output=/tmp/fixtures-tox --clean
78+
79+
[testenv:tests-deployed-zkevm]
80+
description = Fill zkEVM test cases in ./tests/ for deployed mainnet forks, using evmone-t8n.
81+
commands_pre = solc-select use {[testenv]solc_version} --always-install
82+
commands = pytest -n auto -m "zkevm" --skip-evm-dump --output=/tmp/fixtures-tox --clean --evm-bin=evmone-t8n
7783

7884
[testenv:tests-develop]
7985
description = Fill test cases in ./tests/ for deployed and development mainnet forks
8086
setenv =
8187
# Use custom EELS_RESOLUTIONS_FILE if it is set via the environment (eg, in CI)
8288
EELS_RESOLUTIONS_FILE = {env:EELS_RESOLUTIONS_FILE:}
8389
commands_pre = solc-select use {[testenv]solc_version} --always-install
84-
commands = pytest -n auto --until={[forks]develop} -k "not slow" --skip-evm-dump --output=/tmp/fixtures-tox --clean
90+
commands = pytest -n auto --until={[forks]develop} -k "not slow and not zkevm" --skip-evm-dump --output=/tmp/fixtures-tox --clean
8591

8692
# ----------------------------------------------------------------------------------------------
8793
# ALIAS ENVIRONMENTS
@@ -119,15 +125,18 @@ extras =
119125
{[testenv:typecheck]extras}
120126
{[testenv:spellcheck]extras}
121127
{[testenv:tests-deployed]extras}
128+
{[testenv:tests-deployed-zkevm]extras}
122129
setenv =
123130
{[testenv:pytest]setenv}
124131
commands_pre =
125132
{[testenv:tests-deployed]:commands_pre}
133+
{[testenv:tests-deployed-zkevm]:commands_pre}
126134
commands =
127135
{[testenv:lint]commands}
128136
{[testenv:typecheck]commands}
129137
{[testenv:spellcheck]commands}
130138
{[testenv:tests-deployed]commands}
139+
{[testenv:tests-deployed-zkevm]commands}
131140

132141
# ALIAS that runs checks on ./docs/: spellcheck, markdownlint, mkdocs
133142
# uvx --with=tox-uv tox -e spellcheck,markdownlint,mkdocs

whitelist.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,7 @@ yml
521521
yParity
522522
yul
523523
zfill
524+
zkEVM
524525

525526
addoption
526527
addinivalue

0 commit comments

Comments
 (0)