docs(contributing): Add guide for running CI tests locally with tox-lsr

Signed-off-by: Wen Liang <liangwen12year@gmail.com>
This commit is contained in:
Wen Liang 2025-07-06 21:40:24 -04:00 committed by Richard Megginson
parent 8babd71a26
commit a384d5bb50

View file

@ -118,3 +118,50 @@ explanation about the NetworkManager API.
podman stop lsr-ci-c7
podman rm lsr-ci-c7
```
## Running CI Tests Locally
### Use tox-lsr with qemu
The latest version of tox-lsr supports qemu testing.
<https://github.com/linux-system-roles/tox-lsr#qemu-testing>
**Steps:**
1. If you are using RHEL or CentOS, enable the EPEL repository for your
platform - <https://docs.fedoraproject.org/en-US/epel/>
2. Use yum or dnf to install `standard-test-roles-inventory-qemu`
* If for some reason dnf/yum do not work, just download the script from
<https://pagure.io/standard-test-roles/raw/master/f/inventory/standard-inventory-qcow2> <!--- wokeignore:rule=master -->
* copy to your `$PATH`, and make sure it is executable
3. Install tox
* Use yum/dnf to install `python3-tox` - if that does not work, then use
`pip install --user tox`, then make sure `~/.local/bin` is in your `$PATH`
4. Install tox-lsr <https://github.com/linux-system-roles/tox-lsr#how-to-get-it>
```bash
pip install --user git+https://github.com/linux-system-roles/tox-lsr@main
```
5. Download the config file to `~/.config/linux-system-roles.json` from
<https://github.com/linux-system-roles/linux-system-roles.github.io/blob/main/download/linux-system-roles.json>
6. Assuming you are in a git clone of a role repo which has a tox.ini file -
you can use e.g.
```bash
tox -e qemu-ansible-core-2.14 -- --image-name centos-9 tests/tests_default.yml
```
There are many command line options and environment variables which can be used
to control the behavior, and you can customize the testenv in tox.ini. See
<https://github.com/linux-system-roles/tox-lsr#qemu-testing>
This method supports RHEL also - will download the latest image for a compose,
and will set up the yum repos to point to internal composes.
See <https://linux-system-roles.github.io/contribute.html> for general
development guidelines.