Skip to content

Commit 7b38147

Browse files
holgerd77jochem-brouweracolytec3
authored
EVM/VM: Bugfix Release on maintenance-v8 (Transient Storage Tx Clearing Bug) (#3643)
* Ensure TransientStorage cleanups after Tx-level contract creation (#3625) * evm: fix bug not clearing transient storage on tx-level create * evm: add tests for tstore cleanup * make cspell happy --------- Co-authored-by: acolytec3 <[email protected]> * Add CHANGELOG entries, bump versions, update upstream dependency versions (EVM/VM) * Rebuild package-lock.json * Speedup CI with cache (#3592) * Call `dpt.destroy` inside rlpx * Turn off github actions * Add wtfnode * shorten timeout on retry * Ensure peer disconnects * Slight disconnect tweak * Ensure peer refreshIntervals are cleared * clear interval in peer disconnect * Add client wtfnode ci run * run block and devp2p * cache build outputs * only run block coverage * cache everything * Adjust working directory * fix working dir * add submodules to block * Add separate lint check * add vm * set correct job ordering * Add restore step to vm:blockchain * Add workflow dependency * add jobs * call block in devp2p * Need build * Try reusable workflows * remove build dep * update concurrency * add ethash and common * add trie and build * Up setup-node to v3 * Update lockfile * pass cache-key to block * better hash key * Cache key redux * correct cache key usage * remove package lock * fix inputs * fix syntax * Remove echo * add cachekey * Add all package test suites to build script * TYPO * run ci if cache miss * Add fake key to dispatch * make cache key optional * remove devp2p changes * add additional packages * add correct triggers * update node to 20 * Add install if... * just build block * run build on node 20 * add default back * remove conditional install step * update action versions and package lock * run install in correct directory * update package-lock * echo some stuff * More tweaks * try again * reference correct output * use common instead * try skipping checkout * fix util reference * restore first * restore first * add checkout back * add separate build step * clarify naming on build vs dep cache * update build cache key * update build cache * fix build key * turn block on * add inputs to block * fix more things * remove build cache step * update package lock * remove ignore scripts * cache everything * Always build and cache * more experiments * always run npm ci * update to latest ver * clean up client and vm jobs * more cleanup * remove multi-node strategy * add correct concurrency groups * fix concurrency deadlock * remove recursive checkout from test jobs * Fix devp2p * remove retry on devp2p * set working directory * Move lint to separate job * temp: test block test fail without changing pkg-lock * update build.yml * update build.yml * test * test * restore correct code (this should pass block test now) * use run_id * test ethereum-tests with cache * this should install the ethereum-tests in block since the cache will not be hit * test 2 * test * test ethereum-test failer * restore * test * install ethereum-tests * remove ethereum tetss from benchmark * Add valid submodule cache key * echo key * add shell param * echo that key * add quotes * add quotes * fix the key * make submodules recursive * restore ethereum-tests * fix cache key references * make cache fail on miss * update triggers and vm-build [no ci] * try browser with alternatives for ethereum-tests * check event_name * Figure out how event trigger name * Only clone if no inputs * check for submodule cache key * only restore if dep-cache key exists * Fix restore logic * fix everything * turn the CI back on --------- Co-authored-by: acolytec3 <[email protected]> * Dummy change to re-trigger CI * Remove cspell CI job * Attempt to fix CI (cannot find module @rollup/rollup-linux-x64-gnu) * Rebuild package-lock.json --------- Co-authored-by: Jochem Brouwer <[email protected]> Co-authored-by: acolytec3 <[email protected]>
1 parent 27e2c02 commit 7b38147

32 files changed

+1150
-1010
lines changed

.github/workflows/block-build.yml

Lines changed: 44 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
name: Block
22
on:
3-
push:
4-
branches: [master, develop]
5-
tags: ['*']
6-
pull_request:
7-
types: [opened, reopened, synchronize]
3+
workflow_call:
4+
inputs:
5+
dep-cache-key:
6+
required: true
7+
type: string
8+
submodule-cache-key:
9+
required: true
10+
type: string
811
workflow_dispatch:
12+
inputs:
13+
dep-cache-key:
14+
required: false
15+
default: 'none'
16+
submodule-cache-key:
17+
required: false
18+
default: 'none'
919

1020
env:
1121
cwd: ${{github.workspace}}/packages/block
@@ -15,32 +25,49 @@ defaults:
1525
working-directory: packages/block
1626

1727
concurrency:
18-
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
28+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-block
1929
cancel-in-progress: true
2030

2131
jobs:
2232
test-block:
2333
runs-on: ubuntu-latest
24-
strategy:
25-
matrix:
26-
node-version: [18]
27-
steps:
28-
- uses: actions/checkout@v4
34+
steps:
35+
# We clone the repo and submodules if triggered from work-flow dispatch
36+
- if: inputs.submodule-cache-key == 'none'
37+
uses: actions/checkout@v4
2938
with:
3039
submodules: recursive
3140

32-
- name: Use Node.js ${{ matrix.node-version }}
41+
# We restore the code/deps from cache if triggered from workflow_call (i.e. have valid cache key)
42+
- if: inputs.dep-cache-key != 'none'
43+
uses: actions/cache/restore@v4
44+
id: dep-cache
45+
with:
46+
path: ${{github.workspace}}
47+
key: ${{ inputs.dep-cache-key }}
48+
49+
- name: Use Node.js 20
3350
uses: actions/setup-node@v4
3451
with:
35-
node-version: ${{ matrix.node-version }}
52+
node-version: 20
3653
cache: 'npm'
3754

38-
- run: npm ci --omit=peer
39-
working-directory: ${{github.workspace}}
55+
- name: Install Dependencies (if called from workflow_dispatch)
56+
if: steps.dep-cache.outputs.cache-hit != 'true'
57+
run: npm ci
58+
working-directory: ${{ github.workspace }}
59+
60+
- if: inputs.submodule-cache-key != 'none'
61+
uses: actions/cache/restore@v4
62+
name: Initialize ethereum-tests
63+
id: submodules-cache
64+
with:
65+
path: ${{github.workspace}}/packages/ethereum-tests
66+
key: ${{ inputs.submodule-cache-key}}
67+
fail-on-cache-miss: true
4068

41-
- run: npm run lint
4269
- run: npm run coverage
4370
- uses: codecov/codecov-action@v3
4471
with:
45-
files: ${{ env.cwd }}/coverage/lcov.info
72+
files: ${{ github.workspace}}/packages/block/coverage/lcov.info
4673
flags: block

.github/workflows/blockchain-build.yml

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
name: Blockchain
22
on:
3-
push:
4-
branches: [master, develop]
5-
tags: ['*']
6-
pull_request:
7-
types: [opened, reopened, synchronize]
3+
workflow_call:
4+
inputs:
5+
dep-cache-key:
6+
required: true
7+
type: string
88
workflow_dispatch:
9+
inputs:
10+
dep-cache-key:
11+
required: false
12+
default: 'none'
13+
submodule-cache-key:
14+
required: false
15+
default: 'none'
916

1017
env:
1118
cwd: ${{github.workspace}}/packages/blockchain
@@ -15,28 +22,35 @@ defaults:
1522
working-directory: packages/blockchain
1623

1724
concurrency:
18-
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
25+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-blockchain
1926
cancel-in-progress: true
2027

2128
jobs:
2229
test-blockchain:
2330
runs-on: ubuntu-latest
24-
strategy:
25-
matrix:
26-
node-version: [18]
2731
steps:
28-
- uses: actions/checkout@v4
32+
# We clone the repo and submodules if triggered from work-flow dispatch
33+
- if: inputs.submodule-cache-key == 'none'
34+
uses: actions/checkout@v4
2935

30-
- name: Use Node.js ${{ matrix.node-version }}
36+
# We restore the code/deps from cache if triggered from workflow_call (i.e. have valid cache key)
37+
- uses: actions/cache/restore@v4
38+
id: dep-cache
39+
with:
40+
path: ${{github.workspace}}
41+
key: ${{ inputs.dep-cache-key }}
42+
43+
- name: Use Node.js 20
3144
uses: actions/setup-node@v4
3245
with:
33-
node-version: ${{ matrix.node-version }}
46+
node-version: 20
3447
cache: 'npm'
3548

36-
- run: npm ci --omit=peer
37-
working-directory: ${{github.workspace}}
38-
39-
- run: npm run lint
49+
- name: Install Dependencies (if called from workflow_dispatch)
50+
if: steps.dep-cache.outputs.cache-hit != 'true'
51+
run: npm ci
52+
working-directory: ${{ github.workspace }}
53+
4054
- run: npm run coverage
4155
- uses: codecov/codecov-action@v3
4256
with:

.github/workflows/browser.yml

Lines changed: 45 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,68 @@
11
name: Browser
22
on:
3-
push:
4-
branches: [master, develop]
5-
tags: ['*']
6-
pull_request:
7-
types: [opened, reopened, synchronize]
3+
workflow_call:
4+
inputs:
5+
dep-cache-key:
6+
required: true
7+
type: string
8+
submodule-cache-key:
9+
required: true
10+
type: string
811
workflow_dispatch:
12+
inputs:
13+
dep-cache-key:
14+
required: false
15+
default: 'none'
16+
submodule-cache-key:
17+
required: false
18+
default: 'none'
919

1020
env:
1121
cwd: ${{github.workspace}}
1222

1323
concurrency:
14-
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
24+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-browser
25+
cancel-in-progress: true
1526

1627
jobs:
1728
test-all-browser:
1829
runs-on: ubuntu-latest
1930
strategy:
20-
matrix:
21-
node-version: [20]
2231
fail-fast: false
2332
steps:
24-
- uses: actions/checkout@v4
33+
# We clone the repo and submodules if triggered from work-flow dispatch
34+
- if: inputs.submodule-cache-key == 'none'
35+
uses: actions/checkout@v4
2536
with:
26-
submodules: recursive # necessary for block tests to load ethereum/tests
27-
28-
- name: Use Node.js ${{ matrix.node-version }}
37+
submodules: recursive
38+
39+
# We restore the code/deps from cache if triggered from workflow_call (i.e. have valid cache key)
40+
- if: inputs.dep-cache-key != 'none'
41+
uses: actions/cache/restore@v4
42+
id: dep-cache
43+
with:
44+
path: ${{github.workspace}}
45+
key: ${{ inputs.dep-cache-key }}
46+
47+
- name: Use Node.js 20
2948
uses: actions/setup-node@v4
3049
with:
31-
node-version: ${{ matrix.node-version }}
50+
node-version: 20
3251
cache: 'npm'
3352

34-
- run: npm ci
53+
- name: Install Dependencies (if called from workflow_dispatch)
54+
if: steps.dep-cache.outputs.cache-hit != 'true'
55+
run: npm ci
56+
working-directory: ${{ github.workspace }}
57+
58+
- if: inputs.submodule-cache-key != 'none'
59+
uses: actions/cache/restore@v4
60+
name: Restore ethereum-tests from cache if available
61+
id: submodules-cache
62+
with:
63+
path: ${{github.workspace}}/packages/ethereum-tests
64+
key: ${{ inputs.submodule-cache-key }}
65+
3566
- run: npm run install-browser-deps
3667

3768
- run: npm run test:browser --workspaces --if-present

0 commit comments

Comments
 (0)