Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
b368857
monorepo: first iteration upgrade to pnpm
gabrocheleau Sep 25, 2025
e6364c4
chore: issing file
gabrocheleau Sep 25, 2025
cd06a1d
Merge branch 'master' into feat/migrate-to-pnpm
gabrocheleau Sep 25, 2025
5fccfc9
chore: add ci to install pnpm
gabrocheleau Sep 25, 2025
ca97c2b
Merge branch 'feat/migrate-to-pnpm' of https://github.com/ethereumjs/…
gabrocheleau Sep 25, 2025
9eaf386
chore: attempt to fix ci
gabrocheleau Sep 25, 2025
9027963
chore: attempt to fix ci
gabrocheleau Sep 25, 2025
c10bec8
chore: attempt to fix ci
gabrocheleau Sep 25, 2025
a2fc8cf
chore: attempt to fix ci
gabrocheleau Sep 25, 2025
b45757f
chore: attempt to fix ci
gabrocheleau Sep 25, 2025
635d1b9
chore: use workspace *
gabrocheleau Sep 25, 2025
34ceba9
chore: pnpm lock update
gabrocheleau Sep 25, 2025
acdbe7c
chore: update package json to use workspace instead of pinned versions
gabrocheleau Sep 25, 2025
ba74b0a
chore: minor fixes
gabrocheleau Sep 25, 2025
5c3bf93
chore: merge
gabrocheleau Sep 29, 2025
1483bfa
chore: adjust build script
gabrocheleau Sep 30, 2025
f7ee0c2
chore: attempt to fix CI
gabrocheleau Sep 30, 2025
7aff11e
chore: attempt to fix ci
gabrocheleau Sep 30, 2025
6e61f00
chore: remove circular dependency
gabrocheleau Sep 30, 2025
492853d
chore: remove circular dependency
gabrocheleau Sep 30, 2025
afded48
chore: add build script
gabrocheleau Sep 30, 2025
bcc8789
chore: adjust build test workflow
gabrocheleau Oct 2, 2025
12f183c
chore: install browser deps
gabrocheleau Oct 2, 2025
efbc2ca
chore: install browser deps
gabrocheleau Oct 2, 2025
b2dd1f6
add playwright to devdep
gabrocheleau Oct 2, 2025
e7b3925
attempt to fix ci
gabrocheleau Oct 2, 2025
cc03a58
chore: adjust ci
gabrocheleau Oct 2, 2025
9176d29
chore: adjust browser deps
gabrocheleau Oct 2, 2025
784eba2
chore: delete verkle test file
gabrocheleau Oct 2, 2025
195925f
chore: remove circular dep
gabrocheleau Oct 2, 2025
f5f127a
chore: adjust verkle imports
gabrocheleau Oct 2, 2025
2eb5cbf
chore: re-dad util verkle tests
gabrocheleau Oct 2, 2025
c50805b
chore: adjust micro eth signer imports
gabrocheleau Oct 2, 2025
32ab0a5
chore: increase timeout
gabrocheleau Oct 2, 2025
42a406e
chore: increase another timeout
gabrocheleau Oct 2, 2025
b581ccc
test: fix ci
gabrocheleau Oct 2, 2025
ab1e60a
tx: increase timeout
gabrocheleau Oct 2, 2025
511e6a5
chore: add submodules
gabrocheleau Oct 2, 2025
da6a86a
fix: update CI workflows to handle submodules and fix Docker pnpm setup
gabrocheleau Oct 2, 2025
f92ada8
fix: correct pnpm setup order in remaining workflows
gabrocheleau Oct 2, 2025
6c328c8
fix: add missing workspace files to Docker and fix pnpm order in work…
gabrocheleau Oct 2, 2025
2e77f09
fix: install pnpm and run pnpm install in Docker to set up workspace …
gabrocheleau Oct 2, 2025
c02f143
chore: attempt to fix ci
gabrocheleau Oct 2, 2025
ddf2506
fix: correct pnpm setup order in all workflow files
gabrocheleau Oct 2, 2025
5c3960f
test: remove pnpm caching from Node.js setup to fix lockfile error
gabrocheleau Oct 2, 2025
bb382ec
fix: remove all pnpm caching from Node.js setup steps
gabrocheleau Oct 2, 2025
a4b906c
fix: add working-directory to pnpm install commands in remaining work…
gabrocheleau Oct 2, 2025
1542a93
fix: implement correct pnpm workspace workflow pattern
gabrocheleau Oct 2, 2025
972a843
fix: apply correct pnpm workspace pattern to blockchain-build.yml
gabrocheleau Oct 2, 2025
74da309
chore: test alternative ci
gabrocheleau Oct 2, 2025
e104794
chore: fix binarytree ci
gabrocheleau Oct 2, 2025
9cebcb6
chore: remove auto version
gabrocheleau Oct 2, 2025
dc8bee3
chore: attempt ot fix binary trie ci
gabrocheleau Oct 3, 2025
1a7faf3
chore: attempt to fix binarytree ci
gabrocheleau Oct 3, 2025
b16cb98
chore: attempt fixing block ci
gabrocheleau Oct 3, 2025
088b4b9
chore: attempt to fix block ci
gabrocheleau Oct 3, 2025
86d0929
chore: attempt to optimize ci caching
gabrocheleau Oct 3, 2025
ca0ac71
chore: attempt to fix binarytreebuild
gabrocheleau Oct 3, 2025
34963bf
chore: attempt to fix binarytreebuild
gabrocheleau Oct 3, 2025
5df13c5
chore: adjust binarytree
gabrocheleau Oct 3, 2025
e31153b
chore: fix block ci
gabrocheleau Oct 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 23 additions & 27 deletions .github/workflows/binarytree-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,47 +10,43 @@ on:
dep-cache-key:
required: false
default: 'none'
submodule-cache-key:
required: false
default: 'none'

env:
cwd: ${{github.workspace}}/packages/binarytree

defaults:
run:
working-directory: packages/binarytree

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

env:
CI: true

jobs:
test-binarytree:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04

steps:
# We clone the repo and submodules if triggered from work-flow dispatch
- if: inputs.submodule-cache-key == 'none'
uses: actions/checkout@v4

# 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
- name: Checkout repository
uses: actions/checkout@v5
with:
path: ${{github.workspace}}
key: ${{ inputs.dep-cache-key }}
submodules: recursive

- name: Use Node.js 20
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
run_install: false

- name: Setup Node.js (restore pnpm cache)
uses: actions/setup-node@v5
with:
node-version: 20
cache: 'npm'
cache: pnpm
cache-dependency-path: pnpm-lock.yaml

- name: Prefetch deps
run: pnpm fetch --frozen-lockfile

- name: Install Dependencies (if not restored from cache)
if: steps.dep-cache.outputs.cache-hit != 'true'
run: npm ci
- name: Install dependencies (workspace root)
working-directory: ${{ github.workspace }}
run: pnpm install --frozen-lockfile --ignore-scripts --prefer-offline

- run: npm run test
- name: Test @ethereumjs/binarytree
working-directory: ${{ github.workspace }}/packages/binarytree
run: pnpm run test
65 changes: 32 additions & 33 deletions .github/workflows/block-build.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# .github/workflows/block-build.yml
name: Block
on:
workflow_call:
Expand All @@ -6,8 +7,8 @@ on:
required: true
type: string
submodule-cache-key:
required: true
type: string
required: false
type: string
workflow_dispatch:
inputs:
dep-cache-key:
Expand All @@ -17,58 +18,56 @@ on:
required: false
default: 'none'

env:
cwd: ${{github.workspace}}/packages/block

defaults:
run:
working-directory: packages/block

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

env:
CI: true

jobs:
test-block:
runs-on: ubuntu-latest
steps:
# We clone the repo and submodules if triggered from work-flow dispatch
- if: inputs.submodule-cache-key == 'none'
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
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
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
path: ${{github.workspace}}
key: ${{ inputs.dep-cache-key }}

- name: Use Node.js 20
run_install: false

- name: Setup Node.js (restore pnpm cache)
uses: actions/setup-node@v5
with:
node-version: 20
cache: 'npm'
cache: pnpm
cache-dependency-path: pnpm-lock.yaml

- name: Install Dependencies (if called from workflow_dispatch)
if: steps.dep-cache.outputs.cache-hit != 'true'
run: npm ci
- name: Prefetch deps
run: pnpm fetch --frozen-lockfile

- name: Install dependencies (workspace root)
working-directory: ${{ github.workspace }}
run: pnpm install --frozen-lockfile --ignore-scripts --prefer-offline

- if: inputs.submodule-cache-key != 'none'
- name: Initialize ethereum-tests (from cache)
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}}
path: ${{ github.workspace }}/packages/ethereum-tests
key: ${{ inputs.submodule-cache-key }}
fail-on-cache-miss: true

- run: npm run coverage
- uses: codecov/codecov-action@v4
- name: Coverage @ethereumjs/block
working-directory: ${{ github.workspace }}/packages/block
run: pnpm run coverage

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ${{ github.workspace}}/packages/block/coverage/lcov.info
files: ${{ github.workspace }}/packages/block/coverage/lcov.info
flags: block
17 changes: 11 additions & 6 deletions .github/workflows/blockchain-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,25 +33,30 @@ jobs:
- if: inputs.submodule-cache-key == 'none'
uses: actions/checkout@v5

# We restore the code/deps from cache if triggered from workflow_call (i.e. have valid cache key)
# 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@v5
with:
node-version: 20
cache: 'npm'
cache: 'pnpm'

- uses: pnpm/action-setup@v4
with:
version: 10.5.2
run_install: false

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

- run: pnpm run coverage
- uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
Expand Down
14 changes: 8 additions & 6 deletions .github/workflows/browser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,19 @@ jobs:
path: ${{github.workspace}}
key: ${{ inputs.dep-cache-key }}

- uses: pnpm/action-setup@v4
with:
version: 10.5.2
run_install: false

- name: Use Node.js 20
uses: actions/setup-node@v5
with:
node-version: 20
cache: 'npm'

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

- if: inputs.submodule-cache-key != 'none'
Expand All @@ -64,10 +68,8 @@ jobs:
path: ${{github.workspace}}/packages/ethereum-tests
key: ${{ inputs.submodule-cache-key }}

- run: npm run install-browser-deps
- run: pnpm run install-browser-deps
- run: npx playwright install --with-deps

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


- run: pnpm run test:browser

95 changes: 66 additions & 29 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,76 +8,113 @@ on:
workflow_dispatch:

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

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

jobs:
checkout-submodules:
runs-on: ubuntu-latest

runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
with:
submodules: recursive

- id: create-cache-key
run: echo "submodule-cache-key=$(git submodule | head -n 1)" >> $GITHUB_OUTPUT
shell: bash
run: echo "submodule-cache-key=$(git submodule | head -n 1)" >> "$GITHUB_OUTPUT"

- uses: actions/cache/restore@v4
id: submodules-cache-restore
with:
key: submodule-${{ steps.create-cache-key.outputs.submodule-cache-key }}
path: ${{github.workspace}}/packages/ethereum-tests

- if: steps.submodules-cache-restore.outputs.cache-hit != 'true'
path: ${{ github.workspace }}/packages/ethereum-tests

- name: Check submodule dir exists
id: have-et
run: |
if [ -d "${{ github.workspace }}/packages/ethereum-tests" ]; then
echo "exists=true" >> "$GITHUB_OUTPUT"
else
echo "exists=false" >> "$GITHUB_OUTPUT"
fi

- if: steps.submodules-cache-restore.outputs.cache-hit != 'true' && steps.have-et.outputs.exists == 'true'
uses: actions/cache/save@v4
id: submodule-cache-save
with:
path: ${{github.workspace}}/packages/ethereum-tests
key: submodule-${{ steps.create-cache-key.outputs.submodule-cache-key}}
path: ${{ github.workspace }}/packages/ethereum-tests
key: submodule-${{ steps.create-cache-key.outputs.submodule-cache-key }}

outputs:
submodule-cache-key: submodule-${{ steps.create-cache-key.outputs.submodule-cache-key}}
submodule-cache-key: submodule-${{ steps.create-cache-key.outputs.submodule-cache-key }}

build:
runs-on: ubuntu-latest
needs: checkout-submodules
runs-on: ubuntu-24.04

steps:
- uses: actions/checkout@v5
with:
submodules: recursive

- uses: actions/cache/restore@v4
id: dep-cache
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
path: ${{github.workspace}}/node_modules
key: npm-${{ hashFiles('package-lock.json') }}
run_install: false

- name: Use Node.js 20
- name: Setup Node (with pnpm cache here only)
uses: actions/setup-node@v5
with:
node-version: 20
cache: 'npm'
node-version: '20'
cache: pnpm
cache-dependency-path: pnpm-lock.yaml

- run: npm ci
working-directory: ${{github.workspace}}
- run: pnpm -v && command -v pnpm

- name: Cache dependencies
uses: actions/cache/save@v4
- name: Restore ethereum-tests submodule
uses: actions/cache/restore@v4
with:
path: ${{github.workspace}}
key: npm-${{ hashFiles('package-lock.json') }}
path: ${{ github.workspace }}/packages/ethereum-tests
key: ${{ needs.checkout-submodules.outputs.submodule-cache-key }}

- name: Install deps (workspace root)
working-directory: ${{ github.workspace }}
run: pnpm install --frozen-lockfile

- name: Install browser deps
run: pnpm run install-browser-deps

- name: Cache build
- name: Build (workspace)
run: pnpm build

- name: Compute dep cache key
id: depkey
shell: bash
run: |
set -euo pipefail
KEY="deps-${{ runner.os }}-node20-$(sha256sum pnpm-lock.yaml | cut -d' ' -f1)-${GITHUB_RUN_ID}"
echo "dep-cache-key=$KEY" >> "$GITHUB_OUTPUT"

- name: Verify workspace exists
id: have-ws
run: |
if [ -d "${{ github.workspace }}" ]; then
echo "exists=true" >> "$GITHUB_OUTPUT"
else
echo "exists=false" >> "$GITHUB_OUTPUT"
fi

- name: Save prepared workspace
if: steps.have-ws.outputs.exists == 'true'
uses: actions/cache/save@v4
with:
path: ${{github.workspace}}
key: npm-${{ hashFiles('package-lock.json') }}-${{ github.run_id }}
path: ${{ github.workspace }}
key: ${{ steps.depkey.outputs.dep-cache-key }}

outputs:
dep-cache-key: ${{ steps.dep-cache.outputs.cache-primary-key }}-${{ github.run_id }}
dep-cache-key: ${{ steps.depkey.outputs.dep-cache-key }}

binarytree:
needs: [build, checkout-submodules]
Expand Down
Loading
Loading