This plugin introduces a game where users gets point on improving the builds.
The plugin is a simple proof of concept of the Build game that was created by Clint Shank. The idea behind the game is to decrease the number of times a build becomes broken. To win the game the developers have to commit code that is compiling and keep adding unit tests.
The plugin is not activated for all jobs at start, each separate job has to activate the game. The game can also be de-activated in one job if some large merge activity is going to take place. To activate the game for a job, go to the job configuration page and check the Continuous integration game box.
Build score card
For each build the game calculates, according to the rules, the number of points that it is worth. Each user that is responsible for the build (ie comitters) receives the points.
Clicking on the link shows what rules that were involved in the point calculation.
To see who is winning the build game, there is a leader board that is shown on the front page.
The rules of the game are:
- -10 points for breaking a build
- 0 points for breaking a build that already was broken
- +1 points for doing a build with no failures (unstable builds gives no points)
- -1 points for each new test failures
- +1 points for each new test that passes
Adding rules to the game
Currently there are three ways to add rules to the game.
Send me a patch for the rule implementation, and I can include it in the main game plugin.
Including rules in another plugin
You are a maintainer of a plugin and would like to add rules to the game with data from your plugin. To do this you should declare the game plugin as an optional dependency to your plugin. To create rules implement the interface Rule, and group them together in a RuleSet. To add a RuleSet to the game, add it to the game's RuleBook.
If there are already rules for your plugin in the game plugin, let me know so they can be removed from the plugin.
Include rules in a third plugin
You would like to add rules to the game that are only valid for your organization and do not want to share them. To do this you should declare the game plugin as a mandatory dependency to your plugin. Then implement the Rule and add them to the RuleBook as in above point.
- Added rules for the PMD Plugin. Adding a PMD warning = -1. Removing a PMD warning = +1.
- Added rules for the Task Scanner Plugin. Adding/removing a HIGH priority task = -5/+5. Adding/removing a MEDIUM priority task = -3/+3. Adding/removing a LOW priority task = -1/+1
- Added rules for the Violations Plugin. Adding/removing a violation = -1/+1. Adding/removing a duplication violation = +5/-5.
- Fixed that no points are given out when a build goes from failed to unstable
- Initial version with hard coded rules