Before running any testing locally, ensure you have run pip install -r requirements-dev.txt in your environment.
Unit tests are designed to test specific training components or features in isolation. Generally, new code should be adding or modifying unit tests.
All unit tests currently live in the tests/unit directory and are run with pytest via tox.
To run the unit tests, you can run tox -e py3-unit.
In CI, the tests are run with Python 3.11 - 3.13 on Ubuntu and MacOS runners - you can see the details in the unit tests workflow file.
Some smoke tests currently live in the tests/smoke directory and are run with pytest via tox.
There is also a Shell-based smoke test script that can be found at tests/smoketest.sh.
To run the smoke tests, you can run tox -e py3-smoke
In CI, the smoke tests are run with Python 3.11 on CentOS runners - you can see the details in the smoke workflow file.
InstructLab training has several end-to-end jobs that run to ensure compatibility with the InstructLab Core project. You can see details about the types of jobs being run in the matrix below.
For more details about the E2E scripts themselves, see the InstructLab Core documentation.
| Name | T-Shirt Size | Runner Host | Instance Type | OS | GPU Type | Script | Flags | Runs when? | Discord reporting? |
|---|---|---|---|---|---|---|---|---|---|
e2e-nvidia-l40s-x4.yml |
Large | AWS | g6e.12xlarge |
CentOS Stream 9 | 4 x NVIDIA L40S w/ 48 GB VRAM (192 GB) | e2e-ci.sh |
l |
Manually by Maintainers, Automatically against main branch at 4PM UTC |
Yes |
Some E2E jobs send their results to the channel #e2e-ci-results via the Son of Jeeves bot in Discord. You can see which jobs currently have reporting via the "Current E2E Jobs" table above.
In Discord, we use actions/actions-status-discord and the built-in channel webhooks feature.
For the E2E jobs that can be launched manually, they take an input field that specifies the PR number or git branch to run them against. If you run them against a PR, they will automatically post a comment to the PR when the tests begin and end so it's easier for those involved in the PR to follow the results.
- Visit the Actions tab.
- Click on one of the E2E workflows on the left side of the page.
- Click on the
Run workflowbutton on the right side of the page. - Enter a branch name or a PR number in the input field.
- Click the green
Run workflowbutton.
Note
Only users with "Write" permissions to the repo can run CI jobs manually