| Component | Lines | Statements | Functions | Branches | Target |
|---|---|---|---|---|---|
| Frontend | ≥7% | ≥7% | ≥4% | ≥5% | 10% |
| Backend | ≥60% | ≥60% | ≥60% | ≥60% | 60% |
Coverage Thresholds:
- Backend: Minimum 60% coverage enforced in CI to maintain code quality
- Frontend: Minimum thresholds (Lines: 7%, Statements: 7%, Functions: 4%, Branches: 5%) enforced to prevent regression
Coverage reports are automatically generated and uploaded to Codecov on every CI run. See frontend/TESTING.md for improvement goals and testing guidelines.
Ibutsu is a test result reporting and artifact storage system. Ibutsu gives your team the ability to post their test results and artifacts to the server through the API, and query them using the web user interface.
Ibutsu has a RESTful API built using the OpenAPI specification
which is browsable from /api/ui/
To run the server locally for development, you can use podman or docker/podman-Compose.
To run Ibutsu using podman, use the ibutsu-pod.sh utility script:
./scripts/ibutsu-pod.sh --create-admin --create-projectThis will start up the containers and create an administrator and a project.
If you want to persistent the data in the containers, use the --persistent option:
./scripts/ibutsu-pod.sh --persistentBy default the script stores persistent data in two directories, .postgres-data and .redis-data.
If you would prefer to use podman volumes, specify the --use-volumes option:
./scripts/ibutsu-pod.sh --persistent --use-volumesTo see all the options provided by the ibutsu-pod.sh script, use the -h option:
./scripts/ibutsu-pod.sh -h
Usage: ibutsu-pod.sh [-h|--help] [-p|--persistent] [-V|--use-volumes] [-A|--create-admin] [-P|--create-project] [POD_NAME]
optional arguments:
-h, --help show this help message
-p, --persistent persist the data in the containers
-V, --use-volumes use podman volumes to store data
-A, --create-admin create an administrator ('[email protected]')
-P, --create-project create a default project ('my-project')
POD_NAME the name of the pod, 'ibutsu' if omitted
There is a pre-created Docker Compose file for running a development environment locally:
docker-compose -f docker-compose.dev.yml upUsing either podman or Docker Compose is the recommended way to run Ibutsu locally. If you don't
want to use the containers, the following must be installed:
- Python 3.9+
- NodeJS
- yarn
- redis (strongly recommend a container)
- PostgreSQL (strongly recommend a container)
The project includes pre-commit hooks for code quality and validation, including OpenAPI schema validation. The OpenAPI specification is validated using the OpenAPI Generator CLI to ensure it's compatible with client generation tools.
To set up pre-commit hooks:
pre-commit installTo run all pre-commit hooks manually:
pre-commit run --all-filesTo run only the OpenAPI validation:
pre-commit run openapi-validate --all-filesOr run the validation script directly:
./scripts/validate-openapi.shThe validation uses the OpenAPI Generator CLI v7.15.0 and requires either podman or docker to be available. The pre-commit hook is configured as a local script with no additional Python dependencies.
Container images for Ibutsu are provided at quay.io/organization/ibutsu.
Frontend:
Backend:
Worker:
Scheduler:
Build Configuration:
- Pull request builds are validated in GitHub Actions CI
- Main branch image builds are triggered automatically via Quay.io repository build triggers
Please visit Ibutsu's Documentation for more information.