|
| 1 | +Support for using travis-ci has been added in order to automate pull-testing. |
| 2 | +See https://travis-ci.org/ for more info |
| 3 | + |
| 4 | +This procedure is different than the pull-tester that came before it in a few |
| 5 | +ways. |
| 6 | + |
| 7 | +There is nothing to administer. This is a major feature as it means |
| 8 | +that builds have no local state. Because there is no ability to login to the |
| 9 | +builders to install packages (tools, dependencies, etc), the entire build |
| 10 | +procedure must instead be controlled by a declarative script (.travis.yml). |
| 11 | +This script declares each build configuration, creates virtual machines as |
| 12 | +necessary, builds, then discards the virtual machines. |
| 13 | + |
| 14 | +A build matrix is constructed to test a wide range of configurations, rather |
| 15 | +than a single pass/fail. This helps to catch build failures and logic errors |
| 16 | +that present on platforms other than the ones the author has tested. This |
| 17 | +matrix is defined in the build script and can be changed at any time. |
| 18 | + |
| 19 | +All builders use the dependency-generator in the depends dir, rather than |
| 20 | +using apt-get to install build dependencies. This guarantees that the tester |
| 21 | +is using the same versions as Gitian, so the build results are nearly identical |
| 22 | +to what would be found in a final release. However, this also means that builds |
| 23 | +will fail if new dependencies are introduced without being added to the |
| 24 | +dependency generator. |
| 25 | + |
| 26 | +In order to avoid rebuilding all dependencies for each build, the binaries are |
| 27 | +cached and re-used when possible. Changes in the dependency-generator will |
| 28 | +trigger cache-invalidation and rebuilds as necessary. |
| 29 | + |
| 30 | +These caches can be manually removed if necessary. This is one of the the very few |
| 31 | +manual operations that is possible with Travis, and it can be done by the |
| 32 | +Bitcoin Core committer via the Travis web interface. |
| 33 | + |
| 34 | +In some cases, secure strings may be needed for hiding sensitive info such as |
| 35 | +private keys or URLs. The travis client may be used to create these strings: |
| 36 | +http://docs.travis-ci.com/user/encryption-keys/ |
| 37 | + |
| 38 | +For the details of the build descriptor, see the official docs: |
| 39 | +http://docs.travis-ci.com/user/build-configuration/ |
0 commit comments