Native QT5 app for showing build status from one or multiple Jenkins CI servers. Uses PyQt5 for Python bindings.
Supports unauthenticated and HTTP basic auth using username & token. cc.xml must be available via these means (some Jenkins plugins allow granular access control to cc.xml).
Configuration is handled in ci_screen.cfg.
Number of seconds that each CI server will be polled for updates. Default is 10 seconds.
Degrees of rotation. Used for rotating the screen for TVs or displays mounted sideways. This is a preferrable alternative to using /boot/config.txt on the Raspberry Pi, as that method causes severe performance issues. Default is 0 degrees.
When enabled, shows animations on certain days of the year provided that all jobs have passed. Default is true.
A comma-seperated list of sections. Each name must match a section in the config file.
Configuration for each individual server. Section name must match one listed under ci_servers->sections.
A required url of the Jenkins server (e.g., http://ci.server.com)
Username to be used if HTTP basic auth is required to access cc.xml.
Auth token to be used if HTTP basic auth is required to access cc.xml.
In this example, ci_screen is configured to pull from two CI servers. The first, ci.foo.com, exposes cc.xml without authentication. The second, ci.bar.net, has HTTP basic auth enabled and provides a username and token. Both foo and bar sections are defined using the
[ci_servers] sections=foo,bar [foo] url=http://ci.foo.com [bar] url=https://ci.bar.net username=myusername token=1042081038133300184013931000109138
QT5, sip, and PyQt5 must be installed.
Install QT5 using the installer from qt.io. Use homebrew to install python3, sip, and pyqt5. Alternatively you can build sip and pyqt from source.
To run fullscreen using eglfs (without the overhead of a windowing system) you can follow this gist.
Install python requirements using
pip install -r requirements.txt and run
pip install tox and run
tox. To run tests. Currently they target python 3.4 or 3.5.