@@ -265,6 +265,32 @@ Geth fixtures
265
265
you may again include the ``GETH_BINARY `` environment variable.
266
266
267
267
268
+ CI testing with a nightly Geth build
269
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
270
+
271
+ Occasionally you'll want to have CI run the test suite against an unreleased version of Geth,
272
+ for example, to test upcoming hard fork changes. The workflow described below is for testing only,
273
+ i.e., open a PR, let CI run the tests, but the changes should only be merged into master once the
274
+ Geth release is published or you have some workaround that doesn't require test fixtures built from
275
+ an unstable client.
276
+
277
+ 1. Configure ``tests/integration/generate_fixtures/go_ethereum/common.py `` as needed.
278
+
279
+ 2. Geth automagically compiles new builds for every commit that gets merged into the codebase.
280
+ Download the desired build from the `develop builds <https://geth.ethereum.org/downloads/ >`_.
281
+
282
+ 3. Build your test fixture, passing in the binary you just downloaded via ``GETH_BINARY ``. Don't forget
283
+ to update the ``/tests/integration/go_ethereum/conftest.py `` file to point to your new fixture.
284
+
285
+ 4. Our CI runs on Ubuntu, so download the corresponding 64-bit Linux
286
+ `develop build <https://geth.ethereum.org/downloads/ >`_, then
287
+ add it to the root of your Web3.py directory. Rename the binary ``custom_geth ``.
288
+
289
+ 5. In ``.circleci/config.yml ``, update jobs relying on ``geth_steps ``, to instead use ``custom_geth_steps ``.
290
+
291
+ 6. Create a PR and let CI do its thing.
292
+
293
+
268
294
Parity/OpenEthereum fixtures
269
295
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
270
296
0 commit comments