Jenkins

From GO Wiki
Jump to: navigation, search

Jenkins is a continuous integration environment that is typically used for maintaining integrity of complex interdependent software. We are using Jenkins in GO for ontologies and annotation checking.

  • There is a brief blog post describing how Jenkins can be used for ontology checking here

Standard Operating Procedure For Checking Jenkins (Ontology Group)

  1. Open the Jenkins website in he "GO" view http://build.berkeleybop.org/view/GO/
  1. Check build-go, build-go-taxon, build-go-xp-chebi for their status. The weather reports show recent builds. The coloured balls show the last build: blue = good, red = bad.


IF THERE IS A BLUE BALL (a failed last build).....


ONE: CHECK CONSOLE OUTPUT

Check the console output to check whether the build fail is because of a technical issue.

  1. Click on the name of the failed build (E.g. build-go-taxon)
  2. Select a Build date, on the left hand side of the page (E.g. Build #381 (Mar 21, 2012 9:26:34 AM))
  3. Click on 'Console Output' in the left hand menu.
  4. Scroll down to the bottom of the page to see the status of the build.


IF THERE IS NO TECHNICAL PROBLEM:


TWO: CHECK REASONER REPORT

  1. Click on the name of the failed build (E.g. build-go-taxon)
  2. Select go-reasoner-report.txt
  3. Look for errors.
  4. Fix errors in the GO files


IF YOU STILL CAN'T TELL WHAT'S WRONG:


THREE: USE Protege Reasoners To Check Errors

For example, to check a failed taxon build:

  1. Open Protege, and load go-trunk/ontology/go.owl
  2. Import go-trunk/ontology/extensions/x-taxon-importer.owl
  3. Run Hermit reasoner
  4. In Entities/Class Hierarchy (inferred) , look for a red 'Nothing' catergory under 'Thing'.
  5. Click the '?' to get more details



Jenkins for GAFs

We are conducting a trial of using Jenkins to run the GO GAF rule engine.

The basic idea is that we configure a job for every GAF. Whenever someone commits a new version of the GAF to SVN, Jenkins launches the gaf checker. It's highly configurable with respect to sending out emails, RSS feeds, etc.

Jenkins is monitoring the new SVN repository. Currently there is a separate Jenkins job that copies from CVS to SVN, but this will be turned off on Sept 22