-
-
Notifications
You must be signed in to change notification settings - Fork 310
143 lines (124 loc) Β· 4.72 KB
/
test-sim-merge.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
name: Sim merge execution/builder tests
concurrency:
# If PR, cancel prev commits. head_ref = source branch name on pull_request, null if push
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on:
push:
# We intentionally don't run push on feature branches. See PR for rational.
branches: [unstable, stable]
pull_request:
workflow_dispatch:
env:
GETH_IMAGE: ethereum/client-go:v1.10.25
NETHERMIND_IMAGE: nethermind/nethermind:1.14.3
MERGEMOCK_IMAGE: g11tech/mergemock:latest
GETH_WITHDRAWALS_IMAGE: g11tech/geth:withdrawalsfeb8
ETHEREUMJS_WITHDRAWALS_IMAGE: g11tech/ethereumjs:blobs-b6b63
NETHERMIND_WITHDRAWALS_IMAGE: nethermindeth/nethermind:withdrawals_yolo
ETHEREUMJS_BLOBS_IMAGE: g11tech/ethereumjs:blobs-b6b63
jobs:
sim-merge-tests:
name: Sim merge tests
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
cache: yarn
- name: Node.js version
id: node
run: echo "v8CppApiVersion=$(node --print "process.versions.modules")" >> $GITHUB_OUTPUT
- name: Restore dependencies
uses: actions/cache@master
id: cache-deps
with:
path: |
node_modules
packages/*/node_modules
key: ${{ runner.os }}-${{ steps.node.outputs.v8CppApiVersion }}-${{ hashFiles('**/yarn.lock', '**/package.json') }}
- name: Install & build
if: steps.cache-deps.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile && yarn build
- name: Build
run: yarn build
if: steps.cache-deps.outputs.cache-hit == 'true'
# </common-build>
- name: Pull Geth
run: docker pull $GETH_IMAGE
- name: Test Lodestar <> Geth interop
run: yarn test:sim:merge-interop
working-directory: packages/beacon-node
env:
EL_BINARY_DIR: ${{ env.GETH_IMAGE }}
EL_SCRIPT_DIR: gethdocker
ENGINE_PORT: 8551
ETH_PORT: 8545
TX_SCENARIOS: simple
- name: Pull Nethermind
run: docker pull $NETHERMIND_IMAGE
- name: Test Lodestar <> Nethermind interop
run: yarn test:sim:merge-interop
working-directory: packages/beacon-node
env:
EL_BINARY_DIR: ${{ env.NETHERMIND_IMAGE }}
EL_SCRIPT_DIR: netherminddocker
ENGINE_PORT: 8551
ETH_PORT: 8545
- name: Pull mergemock
run: docker pull $MERGEMOCK_IMAGE
- name: Test Lodestar <> mergemock relay
run: yarn test:sim:mergemock
working-directory: packages/beacon-node
env:
EL_BINARY_DIR: ${{ env.MERGEMOCK_IMAGE }}
EL_SCRIPT_DIR: mergemock
LODESTAR_PRESET: mainnet
ENGINE_PORT: 8551
ETH_PORT: 8661
- name: Pull geth withdrawals
run: docker pull $GETH_WITHDRAWALS_IMAGE
- name: Test Lodestar <> geth withdrawals
run: yarn test:sim:withdrawals
working-directory: packages/beacon-node
env:
EL_BINARY_DIR: ${{ env.GETH_WITHDRAWALS_IMAGE }}
EL_SCRIPT_DIR: gethdocker
- name: Pull ethereumjs withdrawals
run: docker pull $ETHEREUMJS_WITHDRAWALS_IMAGE
- name: Test Lodestar <> ethereumjs withdrawals
run: yarn test:sim:withdrawals
working-directory: packages/beacon-node
env:
EL_BINARY_DIR: ${{ env.ETHEREUMJS_WITHDRAWALS_IMAGE }}
EL_SCRIPT_DIR: ethereumjsdocker
# Disable nethermind build as the withdrawal test config seems to be no
# longer available, enable after grabbing a build which has one
#
# - name: Pull nethermind withdrawals
# run: docker pull $NETHERMIND_WITHDRAWALS_IMAGE
# - name: Test Lodestar <> nethermind withdrawals
# run: yarn test:sim:withdrawals
# working-directory: packages/beacon-node
# env:
# EL_BINARY_DIR: ${{ env.NETHERMIND_WITHDRAWALS_IMAGE }}
# EL_SCRIPT_DIR: netherminddocker
# Enable the blob sims when stable images
# - name: Pull ethereumjs blobs
# run: docker pull $ETHEREUMJS_BLOBS_IMAGE
# - name: Test Lodestar <> ethereumjs blobs
# run: yarn test:sim:blobs
# working-directory: packages/beacon-node
# env:
# EL_BINARY_DIR: ${{ env.ETHEREUMJS_BLOBS_IMAGE }}
# EL_SCRIPT_DIR: ethereumjsdocker
# DEV_RUN: true
- name: Upload debug log test files
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: debug-test-logs
path: packages/beacon-node/test-logs