|
1 |
| -## ci scripts |
| 1 | +## CI Scripts |
2 | 2 |
|
3 | 3 | This directory contains scripts for each build step in each build stage.
|
4 | 4 |
|
5 |
| -Currently three stages `lint`, `extended_lint` and `test` are defined. Each stage has its own lifecycle, similar to the |
6 |
| -[Travis CI lifecycle](https://docs.travis-ci.com/user/job-lifecycle#the-job-lifecycle). Every script in here is named |
7 |
| -and numbered according to which stage and lifecycle step it belongs to. |
8 |
| - |
9 |
| -### Running a stage locally |
| 5 | +### Running a Stage Locally |
10 | 6 |
|
11 | 7 | Be aware that the tests will be built and run in-place, so please run at your own risk.
|
12 | 8 | If the repository is not a fresh git clone, you might have to clean files from previous builds or test runs first.
|
@@ -36,3 +32,34 @@ To run the test stage with a specific configuration,
|
36 | 32 | ```
|
37 | 33 | FILE_ENV="./ci/test/00_setup_env_arm.sh" ./ci/test_run_all.sh
|
38 | 34 | ```
|
| 35 | + |
| 36 | +### Configurations |
| 37 | + |
| 38 | +The test files (`FILE_ENV`) are constructed to test a wide range of |
| 39 | +configurations, rather than a single pass/fail. This helps to catch build |
| 40 | +failures and logic errors that present on platforms other than the ones the |
| 41 | +author has tested. |
| 42 | + |
| 43 | +Some builders use the dependency-generator in `./depends`, rather than using |
| 44 | +the system package manager to install build dependencies. This guarantees that |
| 45 | +the tester is using the same versions as the release builds, which also use |
| 46 | +`./depends`. |
| 47 | + |
| 48 | +If no `FILE_ENV` has been specified or values are left out, `00_setup_env.sh` |
| 49 | +is used as the default configuration with fallback values. |
| 50 | + |
| 51 | +It is also possible to force a specific configuration without modifying the |
| 52 | +file. For example, |
| 53 | + |
| 54 | +``` |
| 55 | +MAKEJOBS="-j1" FILE_ENV="./ci/test/00_setup_env_arm.sh" ./ci/test_run_all.sh |
| 56 | +``` |
| 57 | + |
| 58 | +The files starting with `0n` (`n` greater than 0) are the scripts that are run |
| 59 | +in order. |
| 60 | + |
| 61 | +### Cache |
| 62 | + |
| 63 | +In order to avoid rebuilding all dependencies for each build, the binaries are |
| 64 | +cached and re-used when possible. Changes in the dependency-generator will |
| 65 | +trigger cache-invalidation and rebuilds as necessary. |
0 commit comments