https://github.com/release-engineering/resultsdb
The test results store engine for (not only) Fedora QA tools
https://github.com/release-engineering/resultsdb
fedora-infra fedora-modularity
Last synced: about 1 year ago
JSON representation
The test results store engine for (not only) Fedora QA tools
- Host: GitHub
- URL: https://github.com/release-engineering/resultsdb
- Owner: release-engineering
- License: gpl-2.0
- Created: 2021-03-19T12:48:53.000Z (over 5 years ago)
- Default Branch: develop
- Last Pushed: 2025-04-07T17:07:57.000Z (about 1 year ago)
- Last Synced: 2025-04-07T17:25:52.803Z (about 1 year ago)
- Topics: fedora-infra, fedora-modularity
- Language: Python
- Homepage: http://docs.resultsdb20.apiary.io
- Size: 1.32 MB
- Stars: 4
- Watchers: 6
- Forks: 6
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ResultsDB

## What is ResultsDB
ResultsDB is a results store engine for (not only) Fedora QA tools.
The API v2 documentation can be found at
.
## Repositories
* ResultsDB Frontend - [GIT repo](https://pagure.io/taskotron/resultsdb_frontend)
* ResultsDB Client Library - [GIT repo](https://pagure.io/taskotron/resultsdb_api)
## Quick development setup
If you encounter any installation issues, it's possible that you don't have
`gcc` and necessary C development headers installed to compile C extensions
from PyPI. Either install those based on the error messages, or install
the necessary packages directly to your system.
Install the project:
$ poetry run python -m ensurepip --upgrade
$ poetry install
Initialize your database:
$ DEV=true poetry run ./init_db.sh
Run the server:
$ DEV=true poetry run python runapp.py
The server is now running with a very simple frontend at .
API calls can be sent to . All data is stored
inside `/var/tmp/resultsdb_db.sqlite`.
## Adjusting configuration
You can configure this app by copying `conf/settings.py.example` into
`conf/setting.py` and adjusting values as you see fit. It overrides default
values in `resultsdb/config.py`.
## Using with libtaskotron
You might want to use this tool together with libtaskotron. To use your own
*ResultsDB* server in libtaskotron, edit `/etc/taskotron/taskotron.yaml` and
set the following value:
resultsdb_server: http://localhost:5001/api/v2.0
You might also need to adjust `reporting_enabled` and `report_to_resultsdb`,
depending on your local settings.
## Using real-life data from Fedora Infra dumps
Sometimes, you might want to check some performance tweaks with real-life data.
The easy solution might be using our daily dumps and a Postgres instance in Docker:
docker run --name postgres_resultsdb -e POSTGRES_USER=resultsdb -e POSTGRES_PASSWORD=resultsdb -d -p 65432:5432 postgres
wget https://infrastructure.fedoraproject.org/infra/db-dumps/resultsdb.dump.xz
xzcat resultsdb.dump.xz | docker exec -i postgres_resultsdb psql -Uresultsdb
Then just change your config (for DEV environment, you can use `conf/settings.py` file)
to contain this db connector:
SQLALCHEMY_DATABASE_URI = 'postgresql+psycopg2://resultsdb:resultsdb@localhost:65432/resultsdb'
And run as usual.
## Running test suite
After making changes run `tox -e black-format` to reformat the code.
You can run the test suite with the following command:
$ tox
Note, that in order for some of the tests to work properly, tox is configured to spin-up PostgreSQL in a docker container using the
`tox-docker` plugin installed automatically by `tox` when needed.
To avoid using container and use SQLite database in tests instead, run:
$ tox -e py3-nodocker
To use tox-docker with podman without requiring root, you can use
`tox-podman.sh` script that wraps `tox`:
$ ./tox-podman.sh -e py311
## Deployment
If you're trying to deploy ResultsDB, you might find some helpful instructions
in the
[Fedora infra docs](https://pagure.io/infra-docs/blob/master/f/docs/sysadmin-guide/sops/resultsdb.rst).