Skip to content

Commit

Permalink
EVM/VM: Bugfix Release on maintenance-v8 (Transient Storage Tx Cleari…
Browse files Browse the repository at this point in the history
…ng 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 <17355484+acolytec3@users.noreply.github.com>

* 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 <17355484+acolytec3@users.noreply.github.com>

* 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 <jochembrouwer96@gmail.com>
Co-authored-by: acolytec3 <17355484+acolytec3@users.noreply.github.com>
  • Loading branch information
3 people committed Sep 9, 2024
1 parent 27e2c02 commit 7b38147
Show file tree
Hide file tree
Showing 32 changed files with 1,150 additions and 1,010 deletions.
61 changes: 44 additions & 17 deletions .github/workflows/block-build.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
name: Block
on:
push:
branches: [master, develop]
tags: ['*']
pull_request:
types: [opened, reopened, synchronize]
workflow_call:
inputs:
dep-cache-key:
required: true
type: string
submodule-cache-key:
required: true
type: string
workflow_dispatch:
inputs:
dep-cache-key:
required: false
default: 'none'
submodule-cache-key:
required: false
default: 'none'

env:
cwd: ${{github.workspace}}/packages/block
Expand All @@ -15,32 +25,49 @@ defaults:
working-directory: packages/block

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-block
cancel-in-progress: true

jobs:
test-block:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18]
steps:
- uses: actions/checkout@v4
steps:
# We clone the repo and submodules if triggered from work-flow dispatch
- if: inputs.submodule-cache-key == 'none'
uses: actions/checkout@v4
with:
submodules: recursive

- name: Use Node.js ${{ matrix.node-version }}
# We restore the code/deps from cache if triggered from workflow_call (i.e. have valid cache key)
- if: inputs.dep-cache-key != 'none'
uses: actions/cache/restore@v4
id: dep-cache
with:
path: ${{github.workspace}}
key: ${{ inputs.dep-cache-key }}

- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
node-version: 20
cache: 'npm'

- run: npm ci --omit=peer
working-directory: ${{github.workspace}}
- name: Install Dependencies (if called from workflow_dispatch)
if: steps.dep-cache.outputs.cache-hit != 'true'
run: npm ci
working-directory: ${{ github.workspace }}

- if: inputs.submodule-cache-key != 'none'
uses: actions/cache/restore@v4
name: Initialize ethereum-tests
id: submodules-cache
with:
path: ${{github.workspace}}/packages/ethereum-tests
key: ${{ inputs.submodule-cache-key}}
fail-on-cache-miss: true

- run: npm run lint
- run: npm run coverage
- uses: codecov/codecov-action@v3
with:
files: ${{ env.cwd }}/coverage/lcov.info
files: ${{ github.workspace}}/packages/block/coverage/lcov.info
flags: block
46 changes: 30 additions & 16 deletions .github/workflows/blockchain-build.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
name: Blockchain
on:
push:
branches: [master, develop]
tags: ['*']
pull_request:
types: [opened, reopened, synchronize]
workflow_call:
inputs:
dep-cache-key:
required: true
type: string
workflow_dispatch:
inputs:
dep-cache-key:
required: false
default: 'none'
submodule-cache-key:
required: false
default: 'none'

env:
cwd: ${{github.workspace}}/packages/blockchain
Expand All @@ -15,28 +22,35 @@ defaults:
working-directory: packages/blockchain

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-blockchain
cancel-in-progress: true

jobs:
test-blockchain:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18]
steps:
- uses: actions/checkout@v4
# We clone the repo and submodules if triggered from work-flow dispatch
- if: inputs.submodule-cache-key == 'none'
uses: actions/checkout@v4

- name: Use Node.js ${{ matrix.node-version }}
# We restore the code/deps from cache if triggered from workflow_call (i.e. have valid cache key)
- uses: actions/cache/restore@v4
id: dep-cache
with:
path: ${{github.workspace}}
key: ${{ inputs.dep-cache-key }}

- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
node-version: 20
cache: 'npm'

- run: npm ci --omit=peer
working-directory: ${{github.workspace}}

- run: npm run lint
- name: Install Dependencies (if called from workflow_dispatch)
if: steps.dep-cache.outputs.cache-hit != 'true'
run: npm ci
working-directory: ${{ github.workspace }}

- run: npm run coverage
- uses: codecov/codecov-action@v3
with:
Expand Down
59 changes: 45 additions & 14 deletions .github/workflows/browser.yml
Original file line number Diff line number Diff line change
@@ -1,37 +1,68 @@
name: Browser
on:
push:
branches: [master, develop]
tags: ['*']
pull_request:
types: [opened, reopened, synchronize]
workflow_call:
inputs:
dep-cache-key:
required: true
type: string
submodule-cache-key:
required: true
type: string
workflow_dispatch:
inputs:
dep-cache-key:
required: false
default: 'none'
submodule-cache-key:
required: false
default: 'none'

env:
cwd: ${{github.workspace}}

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-browser
cancel-in-progress: true

jobs:
test-all-browser:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20]
fail-fast: false
steps:
- uses: actions/checkout@v4
# We clone the repo and submodules if triggered from work-flow dispatch
- if: inputs.submodule-cache-key == 'none'
uses: actions/checkout@v4
with:
submodules: recursive # necessary for block tests to load ethereum/tests

- name: Use Node.js ${{ matrix.node-version }}
submodules: recursive

# We restore the code/deps from cache if triggered from workflow_call (i.e. have valid cache key)
- if: inputs.dep-cache-key != 'none'
uses: actions/cache/restore@v4
id: dep-cache
with:
path: ${{github.workspace}}
key: ${{ inputs.dep-cache-key }}

- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
node-version: 20
cache: 'npm'

- run: npm ci
- name: Install Dependencies (if called from workflow_dispatch)
if: steps.dep-cache.outputs.cache-hit != 'true'
run: npm ci
working-directory: ${{ github.workspace }}

- if: inputs.submodule-cache-key != 'none'
uses: actions/cache/restore@v4
name: Restore ethereum-tests from cache if available
id: submodules-cache
with:
path: ${{github.workspace}}/packages/ethereum-tests
key: ${{ inputs.submodule-cache-key }}

- run: npm run install-browser-deps

- run: npm run test:browser --workspaces --if-present
Expand Down
Loading

0 comments on commit 7b38147

Please sign in to comment.