JenkinsMaintenance: Difference between revisions

From Mu2eWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
===Introduction===
===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 a significant parallelism. It also has many useful management features. You can [https://buildmaster.fnal.gov browse] the Jenkins system and some [https://cdcvs.fnal.gov/redmine/projects/build_service/documents basic recipes] for code managers.
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 a significant parallelism. It also has many useful management features.  
 
You can browse the [https://buildmaster.fnal.gov Jenkins system] and some [https://cdcvs.fnal.gov/redmine/projects/build_service/documents basic recipes] for code managers.
 
Access to the jenkins pages is by a certificate.  To edit the pages, you need to put in a ticket to get edit permissions.


mu2e has three Jenkins projects, described below
mu2e has three Jenkins projects, described below

Revision as of 00:28, 29 December 2016

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 a significant parallelism. It also has many useful management features.

You can browse the Jenkins system and some basic recipes for code managers.

Access to the jenkins pages is by a certificate. To edit the pages, you need to put in a ticket to get edit permissions.

mu2e has three Jenkins projects, described below

Nightly

   mu2e-offline-build for building a tag of the offline code and producing tarballs suitable for moving the build to a code disk. It builds SLF5 and SLF6 in both prof and debug.
   mu2e-offline-ci to check if git commits build. At every git commit it kicks off a build which the developers can check for errors.
   mu2e-offline-nightly builds every night and checks if g4test/fcl/g4test_03.fcl runs and if there are no geant voume overlaps. It produces a report which is mailed to a few people and archived here. 

Release build

   log onto Jenkins system. To do this procedure, you will need to be identified to Jenkins by a KCA 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", delete your "buildmaster" cookies, close browser, kinit, getcert -i, and try again.
   browse to mu2e tab then mu2e-offline-build project
   click on "configure," go the bottom, in "execute shell" box. Edit the tag name like:
   export MU2E_RELEASE_TAG=v5_2_1
   at the top of the script. Click "save" at the bottom of this page.
   You should be on the project top page. 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. Check logs by clicking on one of the status balls, then "last build" then "console ouput".
   Pull the releases to the code disk.
       logon to mu2e@mu2egpvm01
       cd /mu2e/app/Offline
       ./copyFromJenkins.sh v5_2_1
       The four versions of the release will appear in subdirectories under the tag name.
       The build logs will also be copied there. 
   If this release should also be available to the grid, see CVMFS instructions
   If the tarball is needed for remote distribution, that can be added to the procedure, or it can be retrieved by hand from Jenkins. 

Continuous 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 (SLF5 or 6), then "last build", then "console output" or "view as plain text" to see the errors.