mirror of
https://github.com/Chia-Network/chia-blockchain.git
synced 2024-11-09 17:36:14 +03:00
2faab1ea83
* Improve style consistency * black python required blank Co-authored-by: Nikolaj Kuntner <>
54 lines
2.3 KiB
Markdown
54 lines
2.3 KiB
Markdown
# Test CI Job generation
|
|
|
|
The CI jobs for these tests are managed by `build-workflows.py`.
|
|
|
|
If you add a test file, or move one to another directory, please run `build-workflows.py`.
|
|
Tests are recognized by the file glob `test_*.py`.
|
|
Changing the contents of a file does not require running `build-workflows.py`.
|
|
|
|
We currently use github actions. Default runners have two vcpus.
|
|
The workflows are located in [../.github/workflows/](https://github.com/Chia-Network/chia-blockchain/tree/main/.github/workflows).
|
|
|
|
The inputs to `build-workflows.py` are the templates in `runner-templates`, the file `testconfig.py` in this directory, and the optional `config.py` files in some test subdirectories.
|
|
Files in the template directory ending in `include.yml` are included in jobs based on the per-directory settings.
|
|
|
|
The generated workflows are output to `../.github/workflows/`.
|
|
|
|
Each subdirectory below the directories `root_test_dirs` in `testconfig.py` becomes a job in the github workflow matrix.
|
|
If your jobs run too long, simply move some tests into new subdirectories and run `build-workflows.py`.
|
|
A workflow built from a parent directory does not include the tests in its subdirectories.
|
|
The subdirectory jobs do not include the tests from their parents.
|
|
|
|
## testconfig.py
|
|
|
|
In the top tests directory, [testconfig.py](https://github.com/Chia-Network/chia-blockchain/tree/main/tests/testconfig.py)
|
|
contains the application settings and the per-directory default settings.
|
|
|
|
## config.py
|
|
|
|
Each directory has an optional `config.py` file, which can override the per-directory default settings.
|
|
|
|
Per directory settings defaults:
|
|
|
|
```
|
|
parallel = False
|
|
checkout_blocks_and_plots = True
|
|
install_timelord = True
|
|
job_timeout = 30
|
|
```
|
|
|
|
### Parallel test execution
|
|
|
|
If you are certain that all the tests in a directory can run in parallel, set `parallel = True` in `config.py` inside that directory.
|
|
|
|
### Optional job stages
|
|
|
|
Set `checkout_blocks_and_plots` to `False` to omit checking out the [test-cache](https://github.com/Chia-Network/test-cache) repo.
|
|
|
|
Set `install_timelord` to `False` to omit the step of installing a Time Lord for your directory's job.
|
|
|
|
### Job Timeout
|
|
|
|
Set `job_timeout` to the number of minutes you want the CI system to wait before it kills your job.
|
|
Add two or three minutes to allow for job setup.
|