You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 38 Next »

Jenkins

We are currently running Jenkins 1.511 on scalnx-v01: http://srs.slac.stanford.edu/hudson

Upgrades

To upgrade the version of Jenkins:

  • download the war file from http://jenkins-ci.org/
  • stop the tomcat server on glastlnx18
  • copy the hudson directory and the hudson.war file in the webapps directory somewhere else, as a backup
  • move the war file you downloaded to webapps/hudson.war
  • restart the tomcat server

Jenkins Home

The home directory where Hudson keeps its configuration files and build results is located at tomcat/BASE/HOST/home/.home on the HOST where it is running.

Jenkins Settings

For SRS the Hudson settings are located under /nfs/slac/g/srs/hudson

Worker Nodes

There are a few worker nodes that are running experiment specific builds. The slave.jar file must be kept synchronized with the version of the hudson war file when upgrades are performed. To do this it is necessary to shut down the worker node by loggin in on the machine on which the worker node is running and killing the java process.

To find which server a worker node is running on follow: Manage Hudson -> Manage Nodes -> NODE_NAME -> System Information There you can look for HOST.

How do we run the monitor script?

Worker Node

Account

Directory

Host

Comment

exo-build01

exodata

/nfs/slac/g/exo/software/hudson/exo-build01

scalnx01

 

exo-build02

exodata

~/hudson

www.exo200.org

 

exo-build-noric32

exodata

/nfs/slac/g/exo/software/hudson/

noric32

This agent is started on-demand via ssh

srs-build01

srs

/nfs/slac/g/srs/hudson/srs-build01

scalnx01

cronjob ok

lsst-build01

srs

/nfs/slac/g/srs/hudson/lsst-build01

scalnx01

cronjob ok. Running java at 32 bits.

freehep-build01

freehep

/nfs/slac/g/jas/hudson/freehep-build01

scalnx01

 

lcsim-build01

lcdprod

/nfs/slac/g/lcd/mc/prj/sw/hudson

lcddata01 

 

fermi-build01

glast

/nfs/slac/g/glast/ground/software/hudson/

fermilnx-v03

 

cta-build01

ctadata

/nfs/slac/g/agis/repo/hudson/rhel5-64/

scalnx01

 

fermi-bldmac01

glastrm

/u/gl/glastrm/jenkins/bldmac01

bldmac01

This is now started using launchd from ~glastrm/Library/LaunchDaemons/monitor-jenkins.plist

fermi-bldmac02

glastrm

/u/gl/glastrm/jenkins/bldmac02

bldmac02

This is now started using launchd from ~glastrm/Library/LaunchDaemons/monitor-jenkins.plist

fermi-win04

glast

d:\jenkins

glast-win04

This has been configured to run as a windows service using the instructions here:
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service. Note: When the windows glast password is changed it must be updated in the windows service manager or the service will fail to start on reboot.

fermi-bldlnx06

glastrm

/u/gl/glastrm/hudson/bldlnx06

bldlnx06

 

fermi-bldlnx11

glastrm

/u/gl/glastrm/hudson/bldlnx11

bldlnx11

 

fermi-bldlnx12

glastrm

/u/gl/glastrm/hudson/bldlnx12

bldlnx12

 

cdms-build-noric34

cdmsdata/u/dm/cdmsdata/jenkinsnoric34 

hps-build01

lcdprod

/nfs/slac/g/lcd/mc/prj/sw/hudson

lcddata01 

 

 

Launching Jobs

Most jobs are configured to start on SCM changes by polling the repository with scheduled tasks. The SCM polling has been causing problems, so we have migrated to a different strategy: triggering the jobs remotely upon SCM changes.

SVN repositories

For the FreeHEP and the SRS repositories we have installed post-commit hooks to notify Jenkins of SCM changes. Jenkins will the internally figure out which jobs to start.

The scripts are installed in the following locations:

SRS: /nfs/slac/g/srs/subversion/hooks

Freehep: /nfs/slac/g/jas/svnbackup/svnrepositories/svn/hooks

CVS repositories

CVS hooks work differently than SVN hooks. SVN hooks are triggered at different stages of the commit, while CVS hooks are triggered for each commit. For Fermi we modified the file /nfs/slac/g/glast/ground/javacvs/CVSROOT/loginfo (has to be checked out, don't modify it on the file system directly). Each time there is a commit we execute the script /nfs/slac/g/glast/ground/jenkins/post-commit-hook which touches a file in /nfs/slac/g/glast/ground/jenkins/jobs with the name of the module that was modified. We have then installed a cronjob that runs the script /nfs/slac/g/glast/ground/jenkins/launch_jenkins_builds that is responsible to launching the corresponding jobs in Jenkins.

 

  • No labels