Skip to content

Commit 41ec1e4

Browse files
committed
Create variables for for circleci config for ease of updating.
- Create variables for the go-ethereum version and the py-geth version for CI builds to more easily manage updates and generate less noise when updating the test fixtures. - Update contributing docs to reflect all changes required when updating the integration test fixtures.
1 parent 05d08c5 commit 41ec1e4

File tree

2 files changed

+17
-42
lines changed

2 files changed

+17
-42
lines changed

.circleci/config.yml

Lines changed: 9 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ docs_steps: &docs_steps
6262
geth_steps: &geth_steps
6363
working_directory: ~/repo
6464
resource_class: xlarge
65+
parameters:
66+
geth_version:
67+
# update this value when updating the go-ethereum integration test fixture
68+
default: "v1.11.5"
69+
type: string
6570
steps:
6671
- checkout
6772
- restore_cache:
@@ -76,8 +81,8 @@ geth_steps: &geth_steps
7681
mkdir -p $HOME/.ethash
7782
pip install --user py-geth>=3.12.0
7883
export GOROOT=/usr/local/go
79-
echo $GETH_VERSION
80-
export GETH_BINARY="$HOME/.py-geth/geth-$GETH_VERSION/bin/geth"
84+
echo <<parameters.geth_version>>
85+
export GETH_BINARY="$HOME/.py-geth/geth-<<parameters.geth_version>>/bin/geth"
8186
if [ ! -e "$GETH_BINARY" ]; then
8287
curl -O https://storage.googleapis.com/golang/go1.20.1.linux-amd64.tar.gz
8388
tar xvf go1.20.1.linux-amd64.tar.gz
@@ -86,9 +91,9 @@ geth_steps: &geth_steps
8691
sudo ln -s /usr/local/go/bin/go /usr/local/bin/go
8792
sudo apt-get update;
8893
sudo apt-get install -y build-essential;
89-
python -m geth.install $GETH_VERSION;
94+
python -m geth.install <<parameters.geth_version>>;
9095
fi
91-
sudo ln -s /home/circleci/.py-geth/geth-$GETH_VERSION/bin/geth /usr/local/bin/geth
96+
sudo ln -s /home/circleci/.py-geth/geth-<<parameters.geth_version>>/bin/geth /usr/local/bin/geth
9297
geth version
9398
geth makedag 0 $HOME/.ethash
9499
- run:
@@ -119,7 +124,6 @@ geth_custom_steps: &geth_custom_steps
119124
command: |
120125
mkdir -p $HOME/.ethash
121126
export GOROOT=/usr/local/go
122-
echo $GETH_VERSION
123127
export GETH_BINARY="./custom_geth"
124128
echo 'export GETH_BINARY="./custom_geth"' >> $BASH_ENV
125129
curl -O https://storage.googleapis.com/golang/go1.20.1.linux-amd64.tar.gz
@@ -247,55 +251,48 @@ jobs:
247251
- image: cimg/python:3.7
248252
environment:
249253
TOXENV: py37-integration-goethereum-ipc
250-
GETH_VERSION: v1.11.5
251254

252255
py37-integration-goethereum-ipc_flaky:
253256
<<: *geth_steps
254257
docker:
255258
- image: cimg/python:3.7
256259
environment:
257260
TOXENV: py37-integration-goethereum-ipc_flaky
258-
GETH_VERSION: v1.11.5
259261

260262
py37-integration-goethereum-http:
261263
<<: *geth_steps
262264
docker:
263265
- image: cimg/python:3.7
264266
environment:
265267
TOXENV: py37-integration-goethereum-http
266-
GETH_VERSION: v1.11.5
267268

268269
py37-integration-goethereum-http_async:
269270
<<: *geth_steps
270271
docker:
271272
- image: cimg/python:3.7
272273
environment:
273274
TOXENV: py37-integration-goethereum-http_async
274-
GETH_VERSION: v1.11.5
275275

276276
py37-integration-goethereum-http_flaky:
277277
<<: *geth_steps
278278
docker:
279279
- image: cimg/python:3.7
280280
environment:
281281
TOXENV: py37-integration-goethereum-http_flaky
282-
GETH_VERSION: v1.11.5
283282

284283
py37-integration-goethereum-ws:
285284
<<: *geth_steps
286285
docker:
287286
- image: cimg/python:3.7
288287
environment:
289288
TOXENV: py37-integration-goethereum-ws
290-
GETH_VERSION: v1.11.5
291289

292290
py37-integration-goethereum-ws_flaky:
293291
<<: *geth_steps
294292
docker:
295293
- image: cimg/python:3.7
296294
environment:
297295
TOXENV: py37-integration-goethereum-ws_flaky
298-
GETH_VERSION: v1.11.5
299296

300297
py37-integration-ethtester-pyevm:
301298
<<: *common
@@ -351,55 +348,48 @@ jobs:
351348
- image: cimg/python:3.8
352349
environment:
353350
TOXENV: py38-integration-goethereum-ipc
354-
GETH_VERSION: v1.11.5
355351

356352
py38-integration-goethereum-ipc_flaky:
357353
<<: *geth_steps
358354
docker:
359355
- image: cimg/python:3.8
360356
environment:
361357
TOXENV: py38-integration-goethereum-ipc_flaky
362-
GETH_VERSION: v1.11.5
363358

364359
py38-integration-goethereum-http:
365360
<<: *geth_steps
366361
docker:
367362
- image: cimg/python:3.8
368363
environment:
369364
TOXENV: py38-integration-goethereum-http
370-
GETH_VERSION: v1.11.5
371365

372366
py38-integration-goethereum-http_async:
373367
<<: *geth_steps
374368
docker:
375369
- image: cimg/python:3.8
376370
environment:
377371
TOXENV: py38-integration-goethereum-http_async
378-
GETH_VERSION: v1.11.5
379372

380373
py38-integration-goethereum-http_flaky:
381374
<<: *geth_steps
382375
docker:
383376
- image: cimg/python:3.8
384377
environment:
385378
TOXENV: py38-integration-goethereum-http_flaky
386-
GETH_VERSION: v1.11.5
387379

388380
py38-integration-goethereum-ws:
389381
<<: *geth_steps
390382
docker:
391383
- image: cimg/python:3.8
392384
environment:
393385
TOXENV: py38-integration-goethereum-ws
394-
GETH_VERSION: v1.11.5
395386

396387
py38-integration-goethereum-ws_flaky:
397388
<<: *geth_steps
398389
docker:
399390
- image: cimg/python:3.8
400391
environment:
401392
TOXENV: py38-integration-goethereum-ws_flaky
402-
GETH_VERSION: v1.11.5
403393

404394
py38-integration-ethtester-pyevm:
405395
<<: *common
@@ -455,55 +445,48 @@ jobs:
455445
- image: cimg/python:3.9
456446
environment:
457447
TOXENV: py39-integration-goethereum-ipc
458-
GETH_VERSION: v1.11.5
459448

460449
py39-integration-goethereum-ipc_flaky:
461450
<<: *geth_steps
462451
docker:
463452
- image: cimg/python:3.9
464453
environment:
465454
TOXENV: py39-integration-goethereum-ipc_flaky
466-
GETH_VERSION: v1.11.5
467455

468456
py39-integration-goethereum-http:
469457
<<: *geth_steps
470458
docker:
471459
- image: cimg/python:3.9
472460
environment:
473461
TOXENV: py39-integration-goethereum-http
474-
GETH_VERSION: v1.11.5
475462

476463
py39-integration-goethereum-http_async:
477464
<<: *geth_steps
478465
docker:
479466
- image: cimg/python:3.9
480467
environment:
481468
TOXENV: py39-integration-goethereum-http_async
482-
GETH_VERSION: v1.11.5
483469

484470
py39-integration-goethereum-http_flaky:
485471
<<: *geth_steps
486472
docker:
487473
- image: cimg/python:3.9
488474
environment:
489475
TOXENV: py39-integration-goethereum-http_flaky
490-
GETH_VERSION: v1.11.5
491476

492477
py39-integration-goethereum-ws:
493478
<<: *geth_steps
494479
docker:
495480
- image: cimg/python:3.9
496481
environment:
497482
TOXENV: py39-integration-goethereum-ws
498-
GETH_VERSION: v1.11.5
499483

500484
py39-integration-goethereum-ws_flaky:
501485
<<: *geth_steps
502486
docker:
503487
- image: cimg/python:3.9
504488
environment:
505489
TOXENV: py39-integration-goethereum-ws_flaky
506-
GETH_VERSION: v1.11.5
507490

508491
py39-integration-ethtester-pyevm:
509492
<<: *common
@@ -559,55 +542,48 @@ jobs:
559542
- image: cimg/python:3.10
560543
environment:
561544
TOXENV: py310-integration-goethereum-ipc
562-
GETH_VERSION: v1.11.5
563545

564546
py310-integration-goethereum-ipc_flaky:
565547
<<: *geth_steps
566548
docker:
567549
- image: cimg/python:3.10
568550
environment:
569551
TOXENV: py310-integration-goethereum-ipc_flaky
570-
GETH_VERSION: v1.11.5
571552

572553
py310-integration-goethereum-http:
573554
<<: *geth_steps
574555
docker:
575556
- image: cimg/python:3.10
576557
environment:
577558
TOXENV: py310-integration-goethereum-http
578-
GETH_VERSION: v1.11.5
579559

580560
py310-integration-goethereum-http_async:
581561
<<: *geth_steps
582562
docker:
583563
- image: cimg/python:3.10
584564
environment:
585565
TOXENV: py310-integration-goethereum-http_async
586-
GETH_VERSION: v1.11.5
587566

588567
py310-integration-goethereum-http_flaky:
589568
<<: *geth_steps
590569
docker:
591570
- image: cimg/python:3.10
592571
environment:
593572
TOXENV: py310-integration-goethereum-http_flaky
594-
GETH_VERSION: v1.11.5
595573

596574
py310-integration-goethereum-ws:
597575
<<: *geth_steps
598576
docker:
599577
- image: cimg/python:3.10
600578
environment:
601579
TOXENV: py310-integration-goethereum-ws
602-
GETH_VERSION: v1.11.5
603580

604581
py310-integration-goethereum-ws_flaky:
605582
<<: *geth_steps
606583
docker:
607584
- image: cimg/python:3.10
608585
environment:
609586
TOXENV: py310-integration-goethereum-ws_flaky
610-
GETH_VERSION: v1.11.5
611587

612588
py310-integration-ethtester-pyevm:
613589
<<: *common
@@ -668,55 +644,48 @@ jobs:
668644
- image: cimg/python:3.11
669645
environment:
670646
TOXENV: py311-integration-goethereum-ipc
671-
GETH_VERSION: v1.11.5
672647

673648
py311-integration-goethereum-ipc_flaky:
674649
<<: *geth_steps
675650
docker:
676651
- image: cimg/python:3.11
677652
environment:
678653
TOXENV: py311-integration-goethereum-ipc_flaky
679-
GETH_VERSION: v1.11.5
680654

681655
py311-integration-goethereum-http:
682656
<<: *geth_steps
683657
docker:
684658
- image: cimg/python:3.11
685659
environment:
686660
TOXENV: py311-integration-goethereum-http
687-
GETH_VERSION: v1.11.5
688661

689662
py311-integration-goethereum-http_async:
690663
<<: *geth_steps
691664
docker:
692665
- image: cimg/python:3.11
693666
environment:
694667
TOXENV: py311-integration-goethereum-http_async
695-
GETH_VERSION: v1.11.5
696668

697669
py311-integration-goethereum-http_flaky:
698670
<<: *geth_steps
699671
docker:
700672
- image: cimg/python:3.11
701673
environment:
702674
TOXENV: py311-integration-goethereum-http_flaky
703-
GETH_VERSION: v1.11.5
704675

705676
py311-integration-goethereum-ws:
706677
<<: *geth_steps
707678
docker:
708679
- image: cimg/python:3.11
709680
environment:
710681
TOXENV: py311-integration-goethereum-ws
711-
GETH_VERSION: v1.11.5
712682

713683
py311-integration-goethereum-ws_flaky:
714684
<<: *geth_steps
715685
docker:
716686
- image: cimg/python:3.11
717687
environment:
718688
TOXENV: py311-integration-goethereum-ws_flaky
719-
GETH_VERSION: v1.11.5
720689

721690
py311-integration-ethtester-pyevm:
722691
<<: *common
@@ -739,7 +708,6 @@ jobs:
739708
- image: cimg/python:3.10
740709
environment:
741710
TOXENV: benchmark
742-
GETH_VERSION: v1.11.5
743711

744712
workflows:
745713
version: 2.1

docs/contributing.rst

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,11 +382,18 @@ Geth Fixtures
382382
$ GETH_BINARY=~/.py-geth/geth-v1.11.5/bin/geth python ./tests/integration/generate_fixtures/go_ethereum.py ./tests/integration/geth-1.11.5-fixture
383383
384384
3. The output of this script is your fixture, a zip file, which is now stored in ``/tests/integration/``.
385-
Update the ``/tests/integration/go_ethereum/conftest.py`` file to point to this new fixture. Delete the old fixture.
385+
Update the ``/tests/integration/go_ethereum/conftest.py`` and ``/web3/tools/benchmark/node.py`` files
386+
to point to this new fixture. Delete the old fixture.
386387

387388
4. Run the tests. To ensure that the tests run with the correct Geth version locally,
388389
you may again include the ``GETH_BINARY`` environment variable.
389390

391+
5. Update the ``geth_version`` parameter for ``geth_steps`` in ``/circleci/config.yml`` to
392+
match the ``go-ethereum`` version used for the test fixture.
393+
394+
6. Bump the ``py-geth`` dependency version in ``setup.py`` to allow the new ``go-ethereum``
395+
version to be installed by users.
396+
390397

391398
CI Testing With a Nightly Geth Build
392399
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0 commit comments

Comments
 (0)