Project

General

Profile

Actions

Jenkins

MAUS tests jobs are run on a server at RAL using automated build/test servers managed by the Jenkins application. The test servers provide an independent means to verify that a particular development branch compiles and runs correctly. The Jenkins build/test system (available through tests tab) is run on a server in RAL ppd master (aka heplnm070) and it accesses another server heplnm071 which is set up as an online mimic. Unless specified in a job configuration (see below), test jobs are run on either heplnm070 or heplnm071, whichever is available. Jenkins is accessed through the Tests tab on this site (which links to http://test.mice.rl.ac.uk).

Getting a build

To get a build, you need a login - ask Durga Rajaram/MAUS PM.

Making a build:
  • Click on Tests link in tabs above
  • Login using link in top right corner
  • Make a new job by clicking New Job in top left hand corner
  • Easiest is to copy an existing job, MAUS_release is probably a good one to take.
  • Choose a name and click okay
  • Click on the name
  • Go back to the top of Jenkins. Your new job should have appeared in the list. Click on it
  • Click on Configure link in left hand corner
  • In the section Source Code Management enter your bazaar branch URL
  • In the section Post-Build Actions > Email notification enter your email address
  • Click Save
  • If you are logged in, there should be an icon showing a Green arrow with a grey disc in the background. Click on this link to trigger a build.
  • The build will also interrogate launchpad every hour and look for changes to your branch

Third Party Libraries

By default, the test server will build third party libraries every time it runs a test. This results in rather slow turnaround. The advantage is that if you find yourself mucking around with third party configuration, the third party stuff will be built automatically. If you want to use the latest trunk third_party libraries, you can do some by altering your configuration. Note: this will mean you are using latest trunk third_party libraries, which may be different to your branches personal third_party libraries, causing test failures. These third party libraries are updated automatically once per week.

  • Click on the name of your job
  • Click on Configure link in left hand corner
  • In the section Execute Shell you will probably see a line like
    ./install_build_test.bash
    . These are the shell commands jenkins runs every time it sees a change to your branch.
  • Alter this to read
    ./install_build_test.bash $NODE_THIRD_PARTY
    - the $NODE_THIRD_PARTY environment variable points to the trunk third_party library install

Fixing problems

Your build will probably fail. If this is the case, you can find what happened by clicking on your build, followed by the link to the build which failed, followed by Console Output to see the output to the terminal. Probably more enlightening, click on Workspace to see the current directory structure. The build is logged in a file called install_log_std.

Most fails are typically failures of the test suite. Occasionally there will be a fail in the third_party library build - because something failed to download properly. If that happens, scons typically fails to compile. Just rerun the job.

You may wish to record the contents of install_log_std to the console_output - this only works when the build was successful (humm, wondering if there's a way to do it when build is not successful anyway).

  • Click on the name of your job
  • Click on Configure link in left hand corner
  • In the section Execute Shell you will probably see a line like
    ./install_build_test.bash
    . These are the shell commands jenkins runs every time it sees a change to your branch.
  • Add a line like
    cat $WORKSPACE/install_log_std
    at the bottom of this shell script. This will repeat install_log_std to the terminal.
  • Run a test job
  • Click on the job in the Build History area in the left hand margin
  • Click on the Console Output link
  • If the build was successful you will be able to see the console output.

Server side

See [[computing-software:Heplnv170_services]] (login required)

Updated by Rogers, Chris over 7 years ago ยท 34 revisions