Jenkins : Plugin Compatibility Tester

This page is intended to describe the process of plugin-compat-tester tooling allowing to generate compatibility matrix for plugins against jenkins core.

Process

Process of the plugin-compat-tester is as follow :

  • Retrieve update-center.json file
  • Extracting jenkins core latest released version. This will be used as JENKINS_VERSION. This version is overridable by passing parameter to plugin-compat-tester.
  • Extracting last released version hpi url for every plugins. Iterating over these urls and :
    • Extracting pom.xml for current plugin, located in META-INF/maven/... in the hpi file
    • Locating /parent/scm/connectionUrl for the currently released plugin
    • Checkouting plugin sources from this url (thanks to maven-scm-api (smile) )
    • Hacking checkouted pom.xml by replacing <parent> section with updated GAV. Version used is JENKINS_VERSION. groupId & artifactId are the standard jenkins ones (org.jenkins-ci.plugins:plugin), these groupId/artifactId could be overriden by specifying other groupId/artifactId ... the hudson ones for example (smile)
    • After pom.xml is hacked, run "mvn test" and gather if everything compiled successfully AND if all tests passed successfully.
    • Save this information in a XML report file storing the JENKINS_VERSION used

We could then use the generated XML and generate some sort of matrix with jenkins version on columns and plugins on rows. Cells will contain icons for compilation and tests.

Devoxx '11 BOF Presentation about Plugin Compat Tester is available here.

Plugin compatibility tester GAE application is available here.

Jenkins CI build job to provide data to GAE application is available here : launch the parameterized build if you have sufficient rights, it will be self documented on parameters pages (disabled since Feb 2013).

Sources : https://github.com/jenkinsci/plugin-compat-tester