Skip to content

Commit 7592e98

Browse files
committed
Create pipeline parameters for circleci config for ease of updating.
- Create pipeline parameters 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 1828913 commit 7592e98

File tree

2 files changed

+20
-44
lines changed

2 files changed

+20
-44
lines changed

.circleci/config.yml

Lines changed: 13 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
version: 2.1
22

3-
# heavily inspired by https://raw.githubusercontent.com/pinax/pinax-wiki/6bd2a99ab6f702e300d708532a6d1d9aa638b9f8/.circleci/config.yml
3+
parameters:
4+
# Note: update these defaults when updating the geth integration test fixture
5+
geth_version:
6+
default: "v1.11.5"
7+
type: string
8+
pygeth_version:
9+
default: "3.12.0"
10+
type: string
411

512
common: &common
613
working_directory: ~/repo
@@ -74,10 +81,10 @@ geth_steps: &geth_steps
7481
name: build geth if missing
7582
command: |
7683
mkdir -p $HOME/.ethash
77-
pip install --user py-geth>=3.12.0
84+
pip install --user py-geth>=<< pipeline.parameters.pygeth_version >>
7885
export GOROOT=/usr/local/go
79-
echo $GETH_VERSION
80-
export GETH_BINARY="$HOME/.py-geth/geth-$GETH_VERSION/bin/geth"
86+
echo << pipeline.parameters.geth_version >>
87+
export GETH_BINARY="$HOME/.py-geth/geth-<< pipeline.parameters.geth_version >>/bin/geth"
8188
if [ ! -e "$GETH_BINARY" ]; then
8289
curl -O https://storage.googleapis.com/golang/go1.20.1.linux-amd64.tar.gz
8390
tar xvf go1.20.1.linux-amd64.tar.gz
@@ -86,9 +93,9 @@ geth_steps: &geth_steps
8693
sudo ln -s /usr/local/go/bin/go /usr/local/bin/go
8794
sudo apt-get update;
8895
sudo apt-get install -y build-essential;
89-
python -m geth.install $GETH_VERSION;
96+
python -m geth.install << pipeline.parameters.geth_version >>;
9097
fi
91-
sudo ln -s /home/circleci/.py-geth/geth-$GETH_VERSION/bin/geth /usr/local/bin/geth
98+
sudo ln -s /home/circleci/.py-geth/geth-<< pipeline.parameters.geth_version >>/bin/geth /usr/local/bin/geth
9299
geth version
93100
geth makedag 0 $HOME/.ethash
94101
- run:
@@ -119,7 +126,6 @@ geth_custom_steps: &geth_custom_steps
119126
command: |
120127
mkdir -p $HOME/.ethash
121128
export GOROOT=/usr/local/go
122-
echo $GETH_VERSION
123129
export GETH_BINARY="./custom_geth"
124130
echo 'export GETH_BINARY="./custom_geth"' >> $BASH_ENV
125131
curl -O https://storage.googleapis.com/golang/go1.20.1.linux-amd64.tar.gz
@@ -247,55 +253,48 @@ jobs:
247253
- image: cimg/python:3.7
248254
environment:
249255
TOXENV: py37-integration-goethereum-ipc
250-
GETH_VERSION: v1.11.5
251256

252257
py37-integration-goethereum-ipc_flaky:
253258
<<: *geth_steps
254259
docker:
255260
- image: cimg/python:3.7
256261
environment:
257262
TOXENV: py37-integration-goethereum-ipc_flaky
258-
GETH_VERSION: v1.11.5
259263

260264
py37-integration-goethereum-http:
261265
<<: *geth_steps
262266
docker:
263267
- image: cimg/python:3.7
264268
environment:
265269
TOXENV: py37-integration-goethereum-http
266-
GETH_VERSION: v1.11.5
267270

268271
py37-integration-goethereum-http_async:
269272
<<: *geth_steps
270273
docker:
271274
- image: cimg/python:3.7
272275
environment:
273276
TOXENV: py37-integration-goethereum-http_async
274-
GETH_VERSION: v1.11.5
275277

276278
py37-integration-goethereum-http_flaky:
277279
<<: *geth_steps
278280
docker:
279281
- image: cimg/python:3.7
280282
environment:
281283
TOXENV: py37-integration-goethereum-http_flaky
282-
GETH_VERSION: v1.11.5
283284

284285
py37-integration-goethereum-ws:
285286
<<: *geth_steps
286287
docker:
287288
- image: cimg/python:3.7
288289
environment:
289290
TOXENV: py37-integration-goethereum-ws
290-
GETH_VERSION: v1.11.5
291291

292292
py37-integration-goethereum-ws_flaky:
293293
<<: *geth_steps
294294
docker:
295295
- image: cimg/python:3.7
296296
environment:
297297
TOXENV: py37-integration-goethereum-ws_flaky
298-
GETH_VERSION: v1.11.5
299298

300299
py37-integration-ethtester-pyevm:
301300
<<: *common
@@ -351,55 +350,48 @@ jobs:
351350
- image: cimg/python:3.8
352351
environment:
353352
TOXENV: py38-integration-goethereum-ipc
354-
GETH_VERSION: v1.11.5
355353

356354
py38-integration-goethereum-ipc_flaky:
357355
<<: *geth_steps
358356
docker:
359357
- image: cimg/python:3.8
360358
environment:
361359
TOXENV: py38-integration-goethereum-ipc_flaky
362-
GETH_VERSION: v1.11.5
363360

364361
py38-integration-goethereum-http:
365362
<<: *geth_steps
366363
docker:
367364
- image: cimg/python:3.8
368365
environment:
369366
TOXENV: py38-integration-goethereum-http
370-
GETH_VERSION: v1.11.5
371367

372368
py38-integration-goethereum-http_async:
373369
<<: *geth_steps
374370
docker:
375371
- image: cimg/python:3.8
376372
environment:
377373
TOXENV: py38-integration-goethereum-http_async
378-
GETH_VERSION: v1.11.5
379374

380375
py38-integration-goethereum-http_flaky:
381376
<<: *geth_steps
382377
docker:
383378
- image: cimg/python:3.8
384379
environment:
385380
TOXENV: py38-integration-goethereum-http_flaky
386-
GETH_VERSION: v1.11.5
387381

388382
py38-integration-goethereum-ws:
389383
<<: *geth_steps
390384
docker:
391385
- image: cimg/python:3.8
392386
environment:
393387
TOXENV: py38-integration-goethereum-ws
394-
GETH_VERSION: v1.11.5
395388

396389
py38-integration-goethereum-ws_flaky:
397390
<<: *geth_steps
398391
docker:
399392
- image: cimg/python:3.8
400393
environment:
401394
TOXENV: py38-integration-goethereum-ws_flaky
402-
GETH_VERSION: v1.11.5
403395

404396
py38-integration-ethtester-pyevm:
405397
<<: *common
@@ -455,55 +447,48 @@ jobs:
455447
- image: cimg/python:3.9
456448
environment:
457449
TOXENV: py39-integration-goethereum-ipc
458-
GETH_VERSION: v1.11.5
459450

460451
py39-integration-goethereum-ipc_flaky:
461452
<<: *geth_steps
462453
docker:
463454
- image: cimg/python:3.9
464455
environment:
465456
TOXENV: py39-integration-goethereum-ipc_flaky
466-
GETH_VERSION: v1.11.5
467457

468458
py39-integration-goethereum-http:
469459
<<: *geth_steps
470460
docker:
471461
- image: cimg/python:3.9
472462
environment:
473463
TOXENV: py39-integration-goethereum-http
474-
GETH_VERSION: v1.11.5
475464

476465
py39-integration-goethereum-http_async:
477466
<<: *geth_steps
478467
docker:
479468
- image: cimg/python:3.9
480469
environment:
481470
TOXENV: py39-integration-goethereum-http_async
482-
GETH_VERSION: v1.11.5
483471

484472
py39-integration-goethereum-http_flaky:
485473
<<: *geth_steps
486474
docker:
487475
- image: cimg/python:3.9
488476
environment:
489477
TOXENV: py39-integration-goethereum-http_flaky
490-
GETH_VERSION: v1.11.5
491478

492479
py39-integration-goethereum-ws:
493480
<<: *geth_steps
494481
docker:
495482
- image: cimg/python:3.9
496483
environment:
497484
TOXENV: py39-integration-goethereum-ws
498-
GETH_VERSION: v1.11.5
499485

500486
py39-integration-goethereum-ws_flaky:
501487
<<: *geth_steps
502488
docker:
503489
- image: cimg/python:3.9
504490
environment:
505491
TOXENV: py39-integration-goethereum-ws_flaky
506-
GETH_VERSION: v1.11.5
507492

508493
py39-integration-ethtester-pyevm:
509494
<<: *common
@@ -559,55 +544,48 @@ jobs:
559544
- image: cimg/python:3.10
560545
environment:
561546
TOXENV: py310-integration-goethereum-ipc
562-
GETH_VERSION: v1.11.5
563547

564548
py310-integration-goethereum-ipc_flaky:
565549
<<: *geth_steps
566550
docker:
567551
- image: cimg/python:3.10
568552
environment:
569553
TOXENV: py310-integration-goethereum-ipc_flaky
570-
GETH_VERSION: v1.11.5
571554

572555
py310-integration-goethereum-http:
573556
<<: *geth_steps
574557
docker:
575558
- image: cimg/python:3.10
576559
environment:
577560
TOXENV: py310-integration-goethereum-http
578-
GETH_VERSION: v1.11.5
579561

580562
py310-integration-goethereum-http_async:
581563
<<: *geth_steps
582564
docker:
583565
- image: cimg/python:3.10
584566
environment:
585567
TOXENV: py310-integration-goethereum-http_async
586-
GETH_VERSION: v1.11.5
587568

588569
py310-integration-goethereum-http_flaky:
589570
<<: *geth_steps
590571
docker:
591572
- image: cimg/python:3.10
592573
environment:
593574
TOXENV: py310-integration-goethereum-http_flaky
594-
GETH_VERSION: v1.11.5
595575

596576
py310-integration-goethereum-ws:
597577
<<: *geth_steps
598578
docker:
599579
- image: cimg/python:3.10
600580
environment:
601581
TOXENV: py310-integration-goethereum-ws
602-
GETH_VERSION: v1.11.5
603582

604583
py310-integration-goethereum-ws_flaky:
605584
<<: *geth_steps
606585
docker:
607586
- image: cimg/python:3.10
608587
environment:
609588
TOXENV: py310-integration-goethereum-ws_flaky
610-
GETH_VERSION: v1.11.5
611589

612590
py310-integration-ethtester-pyevm:
613591
<<: *common
@@ -668,55 +646,48 @@ jobs:
668646
- image: cimg/python:3.11
669647
environment:
670648
TOXENV: py311-integration-goethereum-ipc
671-
GETH_VERSION: v1.11.5
672649

673650
py311-integration-goethereum-ipc_flaky:
674651
<<: *geth_steps
675652
docker:
676653
- image: cimg/python:3.11
677654
environment:
678655
TOXENV: py311-integration-goethereum-ipc_flaky
679-
GETH_VERSION: v1.11.5
680656

681657
py311-integration-goethereum-http:
682658
<<: *geth_steps
683659
docker:
684660
- image: cimg/python:3.11
685661
environment:
686662
TOXENV: py311-integration-goethereum-http
687-
GETH_VERSION: v1.11.5
688663

689664
py311-integration-goethereum-http_async:
690665
<<: *geth_steps
691666
docker:
692667
- image: cimg/python:3.11
693668
environment:
694669
TOXENV: py311-integration-goethereum-http_async
695-
GETH_VERSION: v1.11.5
696670

697671
py311-integration-goethereum-http_flaky:
698672
<<: *geth_steps
699673
docker:
700674
- image: cimg/python:3.11
701675
environment:
702676
TOXENV: py311-integration-goethereum-http_flaky
703-
GETH_VERSION: v1.11.5
704677

705678
py311-integration-goethereum-ws:
706679
<<: *geth_steps
707680
docker:
708681
- image: cimg/python:3.11
709682
environment:
710683
TOXENV: py311-integration-goethereum-ws
711-
GETH_VERSION: v1.11.5
712684

713685
py311-integration-goethereum-ws_flaky:
714686
<<: *geth_steps
715687
docker:
716688
- image: cimg/python:3.11
717689
environment:
718690
TOXENV: py311-integration-goethereum-ws_flaky
719-
GETH_VERSION: v1.11.5
720691

721692
py311-integration-ethtester-pyevm:
722693
<<: *common
@@ -739,7 +710,6 @@ jobs:
739710
- image: cimg/python:3.10
740711
environment:
741712
TOXENV: benchmark
742-
GETH_VERSION: v1.11.5
743713

744714
workflows:
745715
version: 2.1

docs/contributing.rst

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,11 +382,17 @@ 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
386+
``/web3/tools/benchmark/node.py`` files to point to this new fixture. Delete the old
387+
fixture.
386388

387389
4. Run the tests. To ensure that the tests run with the correct Geth version locally,
388390
you may again include the ``GETH_BINARY`` environment variable.
389391

392+
5. Update the ``geth_version`` and ``pygeth_version`` parameter defaults in
393+
``/.circleci/config.yml`` to match the ``go-ethereum`` version used to generate the
394+
test fixture and the ``py-geth`` version that supports installing it.
395+
390396

391397
CI Testing With a Nightly Geth Build
392398
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0 commit comments

Comments
 (0)