Parse build logs out of OpenShift's Python Source-To-Image (s2i) builds that use Thoth s2i container images.
This tool finds structure in an unstructured build logs of OpenShift's s2i and produces a JSON document describing all the actions taken during an OpenShift s2i build process together with additional metadata that can be obtained purely from OpenShift's build logs.
The prerequisite for using this tool is to use Thoth's Python s2i container images that use Thoth as a recommendation engine for Python software stacks and micropipenv for installing dependencies. The build logs produced during s2i builds are still user friendly when directly browsing them in an OpenShift cluster, but can be used for data mining and additional analysis (e.g. build breaking package).
Point this tool to a log obtained from the cluster:
# Obtain logs using:
# oc logs user-api-469-build -n thoth-test-core > log.txt
# or for the most recent build:
# oc logs -f bc/user-api -n thoth-test-core > log.txt
thoth-buildlog-parser parse --input log.txt
And that's it. The tool will produce a JSON document describing the build process with all the metadata.
You can find some example inputs and example outputs in tests/data/
directory.
This tool is packages and published on PyPI so you can issue one of the following commands to install it:
pip install thoth-buildlog-parser
pipenv install thoth-buildlog-parser
After installing this tool, a new command should be available:
thoth-buildlog-parser --help
To run this tool directly from the Git repo:
git clone git@github.com:thoth-station/buildlog-parser.git # or use https cd buildlog-parser pipenv install --dev PYTHONPATH=. pipenv run python3 ./thoth-buildlog-parser parse --help