mirror of https://github.com/bitcoin/bitcoin.git
doc: Detail configuration of hosted CI runners
This commit is contained in:
parent
3f339e99e0
commit
f427284483
32
ci/README.md
32
ci/README.md
|
@ -1,8 +1,8 @@
|
||||||
## CI Scripts
|
# CI Scripts
|
||||||
|
|
||||||
This directory contains scripts for each build step in each build stage.
|
This directory contains scripts for each build step in each build stage.
|
||||||
|
|
||||||
### Running a Stage Locally
|
## Running a Stage Locally
|
||||||
|
|
||||||
Be aware that the tests will be built and run in-place, so please run at your own risk.
|
Be aware that the tests will be built and run in-place, so please run at your own risk.
|
||||||
If the repository is not a fresh git clone, you might have to clean files from previous builds or test runs first.
|
If the repository is not a fresh git clone, you might have to clean files from previous builds or test runs first.
|
||||||
|
@ -27,7 +27,7 @@ with a specific configuration,
|
||||||
env -i HOME="$HOME" PATH="$PATH" USER="$USER" bash -c 'FILE_ENV="./ci/test/00_setup_env_arm.sh" ./ci/test_run_all.sh'
|
env -i HOME="$HOME" PATH="$PATH" USER="$USER" bash -c 'FILE_ENV="./ci/test/00_setup_env_arm.sh" ./ci/test_run_all.sh'
|
||||||
```
|
```
|
||||||
|
|
||||||
### Configurations
|
## Configurations
|
||||||
|
|
||||||
The test files (`FILE_ENV`) are constructed to test a wide range of
|
The test files (`FILE_ENV`) are constructed to test a wide range of
|
||||||
configurations, rather than a single pass/fail. This helps to catch build
|
configurations, rather than a single pass/fail. This helps to catch build
|
||||||
|
@ -49,8 +49,32 @@ env -i HOME="$HOME" PATH="$PATH" USER="$USER" bash -c 'MAKEJOBS="-j1" FILE_ENV="
|
||||||
The files starting with `0n` (`n` greater than 0) are the scripts that are run
|
The files starting with `0n` (`n` greater than 0) are the scripts that are run
|
||||||
in order.
|
in order.
|
||||||
|
|
||||||
### Cache
|
## Cache
|
||||||
|
|
||||||
In order to avoid rebuilding all dependencies for each build, the binaries are
|
In order to avoid rebuilding all dependencies for each build, the binaries are
|
||||||
cached and reused when possible. Changes in the dependency-generator will
|
cached and reused when possible. Changes in the dependency-generator will
|
||||||
trigger cache-invalidation and rebuilds as necessary.
|
trigger cache-invalidation and rebuilds as necessary.
|
||||||
|
|
||||||
|
## Configuring a repository for CI
|
||||||
|
|
||||||
|
### Primary repository
|
||||||
|
|
||||||
|
To configure the primary repository, follow these steps:
|
||||||
|
|
||||||
|
1. Register with [Cirrus Runners](https://cirrus-runners.app/) and purchase runners.
|
||||||
|
2. Install the Cirrus Runners GitHub app against the GitHub organization.
|
||||||
|
3. Enable organisation-level runners to be used in public repositories:
|
||||||
|
1. `Org settings -> Actions -> Runner Groups -> Default -> Allow public repos`
|
||||||
|
4. Permit the following actions to run:
|
||||||
|
1. cirruslabs/cache/restore@\*
|
||||||
|
1. cirruslabs/cache/save@\*
|
||||||
|
1. docker/setup-buildx-action@\*
|
||||||
|
1. actions/github-script@\*
|
||||||
|
|
||||||
|
### Forked repositories
|
||||||
|
|
||||||
|
When used in a fork the CI will run on GitHub's free hosted runners by default.
|
||||||
|
In this case, due to GitHub's 10GB-per-repo cache size limitations caches will be frequently evicted and missed, but the workflows will run (slowly).
|
||||||
|
|
||||||
|
It is also possible to use your own Cirrus Runners in your own fork with an appropriate patch to the `REPO_USE_CIRRUS_RUNNERS` variable in ../.github/workflows/ci.yml
|
||||||
|
NB that Cirrus Runners only work at an organisation level, therefore in order to use your own Cirrus Runners, *the fork must be within your own organisation*.
|
||||||
|
|
Loading…
Reference in New Issue