Jenkins

From Mu2eWiki
Revision as of 16:02, 15 February 2017 by Rlc (talk | contribs)
Jump to navigation Jump to search

Introduction

Jenkins is a freeware java code build system that the Scientific Computing Division is maintaining for the experiments. It includes several powerful build machines where the code can be built using significant parallelism. It also has many useful management features. You can browse the Jenkins system. and docs for code managers.

Running Projects

mu2e has these Jenkins projects:

  1. mu2e-offline-nightly builds every night and checks several jobs, geant volume overlaps, and validation. It produces a report which is mailed to a few people and archived here.
  2. mu2e-offline-build for building a tag of the offline code and producing tarballs suitable for moving the build to a code disk.
  3. mu2e-offline-ci runs every hour and if there was a recent git commit, then run a build which the developers can check for errors.
  4. mu2e-offline-geant-int builds every night to check that the future version of geant is still integrated

Release build

The release build is triggered by hand when a new tag is ready.

  1. log onto Jenkins system. To do this procedure, you will need to be identified to Jenkins by a cert loaded in your browser before you visit the site. The Jenkins page should have your username at the top right. If it says "anonymous", you are not authenticated.
  2. browse to mu2e tab then mu2e-offline-build project
  3. click on "configure," go the bottom, in "execute shell" box. Edit the tag name like:
    export MU2E_RELEASE_TAG=v5_2_1

    or branch name like

    export MU2E_BRANCH=V5_2_1_test_branch

    at the top of the script. Click "save" at the bottom of this page. You should be on the project top page.

  4. Click "build now". It will take up to 1.5 hours if there are lots of other builds running on the build machines. When the status balls stop pulsing, it is done.
  5. Check logs by clicking on one of the status balls, then "last build" then "console output".
  6. Pull the releases to the code disk using CVMFS instructions
  7. If the tarball is needed for remote distribution, that can be added to the procedure, or it can be retrieved by hand from Jenkins.

Integration build

This build will be triggered every time there is a git commit to the Offline repository. You can check the results by browsing the Jenkins system. Go to the "mu2e" tab, the "mu2e-offline-ci" project. If the balls are pulsing, the build is still running. If green, the build was clean. If red, then errors reported. Click on one of the builds (SLF6), then "last build", then "console output" or "view as plain text" to see the errors. If there were errors, Jenkins will email the person who made the commit which triggered the build. If a new commit fixes the build, the user will get a new "all OK" mail.