Giter Site home page Giter Site logo

ci-game-plugin's Introduction

Jenkins ci-game plugin

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.

##Usage

##Configuration

####Version requirements Note that the plugin version 1.13+ requires Hudson 1.320 to work and the following plugin versions:

  • Checkstyle 3.1
  • Findbugs 4.0
  • PMD 3.1
  • Tasks 4.0
  • Warnings 3.0
  • Violations 0.5.4
  • analysis-core 1.0
  • Jacoco 1.0.18

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, click "Add post-build action" and select "Continuous integration game" from the list of available post-build actions.

####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.

build score total

Clicking on the link shows what rules that were involved in the point calculation.

build score card

####Leader board To see who is winning the build game, there is a leader board that is shown on the front page.

leader board

####Rules 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 Rules that depend on other plugins:

#####PMD Plugin. link

  • Adding/removing a HIGH priority warning = -5/+5.
  • Adding/removing a MEDIUM priority warning = -3/+3.
  • Adding/removing a LOW priority warning = -1/+1.

#####Task Scanner Plugin. link

  • Adding/removing a HIGH priority task = -5/+5.
  • Adding/removing a MEDIUM priority task = -3/+3.
  • Adding/removing a LOW priority task = -1/+1

#####Violations Plugin. link

  • Adding/removing a violation = -1/+1.
  • Adding/removing a duplication violation = -5/+5.

#####FindBugs Plugin. link

  • Adding/removing a HIGH priority findbugs warning = -5/+5.
  • Adding/removing a MEDIUM priority findbugs warning = -3/+3.
  • Adding/removing a LOW priority findbugs warning = -1/+1

#####Warnings Plugin. link

  • Adding/removing a compiler warning = -1/+1.

#####Checkstyle Plugin. link

  • Adding/removing a checkstyle warning = -1/+1.

#####Jacoco Plugin. link

  • Reducing/increasing coverage = -10/+10 for each percentage of line coverage, with a minimum of -1/+1.

###Adding rules to the game

Currently there are three ways to add rules to the game.

#####Patch 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.

hudson.plugins.cigame.PluginImpl.GAME_PUBLISHER_DESCRIPTOR.getRuleBook().addRuleSet(pluginruleset);

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.

ci-game-plugin's People

Contributors

ashishparkhi avatar blundell avatar finalspy avatar jglick avatar kohsuke avatar kutzi avatar ljader avatar lkamal avatar mdelapenya avatar ndeloof avatar ohtake avatar olamy avatar philipa avatar redsolo avatar simschla avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.