Feedback on the current state of your Jenkins Continuous Delivery pipeline.
Requires Java 8 and NPM to build and run. Our compatibility with Jenkins is dependent on the Jenkins Java Library, so check over there to see if we are compatible with the version of Jenkins you're running.
Feedback is good. We all want more feedback! We found that the visual displays provided via Jenkins plugins did not provide the detail we wanted at TransFICC (we had grown accustomed to the infamous Big Feedback over at LMAX Exchange), so decided to build our own.
We find it useful to see what stage of our pipeline various commits are, and what jobs are red/green/disabled. We hope you do too.
Important Jenkins configuration
You need to ensure the
Jenkins URL is set otherwise Feedback will not be able to provide useful links to your various jobs or receive updates. At the time of writing, this can be found under
Jenkins Location in
TransFICC Feedback can be configured in two ways. You can either provide a configuration file on it's classpath called feedback.properties, or provide a properties file as a command line argument for the jar when running. The following properties are available for configuration:
feedback.jenkins.urlis the address for your Jenkins server
feedback.jenkins.usernameis the username used for authenticating with your Jenkins server (do not set if authentication is not setup)
feedback.jenkins.passwordis the password used for authenticating with your Jenkins server (do not set if authentication is not setup)
feedback.portthe http port TransFICC Feedback GUI will be available on
feedback.job.namea comma separated list of jobs that will have a specified priority. If a job does not have a specified priority then it appears on the lower half of the Feedback GUI, sorted in red/green/alphabetical order. (Note in the above screenshot the values are feedback.job.name=master-commit,integration-test,acceptance-test,venue-compatibility-test)
feedback.job.prioritythe priority of the jobs listed above, ranked in descending order (the higher the number, the higher the given job appears on the Feedback GUI). Note that 1 is reserved for jobs that have not been prioritised (Note in the above screenshot the values are feedback.job.priority=5,4,3,2)
feedback.job.masterthe name of your master commit job (usually unit tests, checkstyle, archiving). This job will have commit messages displayed (Note in the above screenshot the value is feedback.job.master=master-commit)
feedback.versioncontrolstates what version control software you are using (only Git and SVN currently supported)
I've included how we configured Jenkins for the sake of brevity
feedback.jenkins.url=http://10.24.2.83:8080 feedback.port=4567 feedback.job.name=master-commit,integration-test,acceptance-test,venue-compatibility-test feedback.job.priority=5,4,3,2 feedback.job.master=master-commit feedback.versioncontrol=GIT
cd build/libs/ java -jar transficc-feedback-all.jar
Go to (or the port specified for
- Persist test results (potentially just acceptance) for graphing / analysis
- Ability to block commits to repository if the master commit build is broken
- Fix the never ending green (boxes keep growing in height - apparently only in Chromium)
- Provide a history of failing/intermittent tests
- Support HTTPS (required for websocket to work in some corporate infrastructures)