JenkinsMaintenance: Difference between revisions
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
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. | 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. | ||
Anyone can view the jenkins pages, but to edit the pages you need to put in a ticket to get edit permissions, then authorize yourself to the site with a certificate. To edit, the Jenkins page should have your username at the top right. If it says "anonymous", delete your "buildmaster" cookies, restart browser, check that your cert is loaded in the browser and try again. | |||
mu2e has three Jenkins projects, described below | mu2e has three Jenkins projects, described below. All three are driven by a set of scripts kept in the codetools repository and UPS product. | ||
===Nightly=== | ===Nightly=== | ||
The mu2e-offline-nightly project checks out and builds the head every night at about 3AM. It then runs a series of checks: | |||
* 10 standard fcl jobs and checks that they have a good return code | |||
* an overlap check | |||
* generates 5,000 events in genReco and produces a set of validation histograms | |||
* copies in a standard file and runs CutAndCount on it | |||
The logs and histogram files are saved. The histograms for validation and CutAndCount are compared to the previous day's histograms and report is made. The results are posted on a [http://mu2e.fnal.gov/atwork/computing/ops/nightlyBuild/nightly.shtml web page] and mailed to a few people. This report step is run in the mu2epro account in $HOME/cron/val. | |||
===Release build=== | ===Release build=== | ||
mu2e-offline-build is a way to build code for a release. The code can be selected as a tag or as the head of a branch (for tests). | |||
Browse to mu2e tab then the 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 output". The codetools product has a script copyFromJenkins.sh which will pull the build. | |||
===Continuous Integration build=== | ===Continuous Integration build=== | ||
This build will be | Once an hour, jenkin will check if there has been a new commit to our main git repository and if there was, it will run the mu2e-offline-ci project. This project builds prof and debug from the head. If the build fails, mail will be sent to the person who made the commit. You can also 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 the build failed. Click on one of the builds, then "last build", then "console output" to see the log file. |
Revision as of 16:37, 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.
Anyone can view the jenkins pages, but to edit the pages you need to put in a ticket to get edit permissions, then authorize yourself to the site with a certificate. To edit, the Jenkins page should have your username at the top right. If it says "anonymous", delete your "buildmaster" cookies, restart browser, check that your cert is loaded in the browser and try again.
mu2e has three Jenkins projects, described below. All three are driven by a set of scripts kept in the codetools repository and UPS product.
Nightly
The mu2e-offline-nightly project checks out and builds the head every night at about 3AM. It then runs a series of checks:
- 10 standard fcl jobs and checks that they have a good return code
- an overlap check
- generates 5,000 events in genReco and produces a set of validation histograms
- copies in a standard file and runs CutAndCount on it
The logs and histogram files are saved. The histograms for validation and CutAndCount are compared to the previous day's histograms and report is made. The results are posted on a web page and mailed to a few people. This report step is run in the mu2epro account in $HOME/cron/val.
Release build
mu2e-offline-build is a way to build code for a release. The code can be selected as a tag or as the head of a branch (for tests). Browse to mu2e tab then the 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 output". The codetools product has a script copyFromJenkins.sh which will pull the build.
Continuous Integration build
Once an hour, jenkin will check if there has been a new commit to our main git repository and if there was, it will run the mu2e-offline-ci project. This project builds prof and debug from the head. If the build fails, mail will be sent to the person who made the commit. You can also 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 the build failed. Click on one of the builds, then "last build", then "console output" to see the log file.