My small shop of engineers (mostly nuclear, not software) somehow cobbled together Jenkins with Phabricator and we now have this magical world of up-to-date documentation, unit test results showing up in code review before code goes live, up-to-date in-use test suites, test coverage results vs. time, Pylint scores vs. time, auto-builds of various distribution packages, Python2 and Python3 compatibility checks, long-running validation runs every weekend, the whole nine yards! The best part is the release process (i.e. pushing the develop branch to the master branch). We have this huge checklist and Jenkins just runs through it all when it detects a new push on the master branch, doing all appropriate checks and updates of expected test results and stuff. God I love it.
I'm curious how do you do documentation?
As the OP is writing Python, they are probably using a tool called Sphinx, that formats a codebase's docstrings (inline comments for functions, classes and methods) into reST, html, and many others. A total life changer.
Yup. It's a bunch of docstrings and ReST docs and Jenkins fires off the Sphinx build to make beautiful HTML and PDF documentation every time anyone updates it.
Jenkins is easy enough to abuse. So many places use it as a centralized job runner. I can’t disagree with them; it’s good at that!