Skip to content

Daily builds and Jenkins

Gwanggyu Sun edited this page Dec 8, 2023 · 12 revisions

There are several jobs for continuous integration testing run by Jenkins (version 2.346.1) on Sherlock. This version of Jenkins is the latest version that supports Java 8, which is the default installation version of Java on Sherlock. Using Java 11 or 17 (which are the only supported versions of Java for later versions of Jenkins) leads to errors when the Jenkins GUI is launched (AWT is not properly configured on this server. Try setting "-Djava.awt.headless=true")

Jobs tested everyday (output is saved to $PI_SCRATCH/wc_ecoli/...):

  • daily_build - 25 gens in basal condition and nosetests (performance)
  • with_aa - 8 gens in with amino acid condition
  • anaerobic - 8 gens in anaerobic condition
  • optional features
    • 8 gens in basal with no tRNA charging
    • 8 gens in basal with ppGpp regulation
    • 8 gens in basal with superhelical density calculation
    • 2 gens in basal for fathom data generation

Whenever a pull request is submitted (or committed to) or a commit is added to master, 2 gens in basal condition will run and nosetests (smalltest) will be run. Analysis plots and simulation output are not saved for these tests.

To access log output for each of the runs you need to ssh with port forwarding First, find the login node with the port available by finding the Jenkins job comment on Sherlock with an squeue command and example output below:

$ squeue -p mcovert -o '%j %k'
NAME COMMENT
jenkins sh-ln04

Then ssh to the login node shown under COMMENT:

ssh <username>@sh-ln04 -L 4242:localhost:4242

Finally, simply go to localhost:4242 in a browser on your computer.

If this doesn't work, it is possible that the port from the compute node is not being properly forwarded to the login node. You can work around it by running a job on the same compute node that Jenkins is running on. First look for the compute node that Jenkins is running on in the output of:

squeue -p mcovert

or

squeue | grep jenkins

then use:

srun -w <node> <other options>

e.g.

srun -w sh-08-30 -p mcovert --time=2:00:00 --cpus-per-task=1 --pty bash -l

to request a specific node. Then run:

ssh -nNT <compute_node> -L 4242:localhost:4242 &

from the login node and you should be able to access the port locally.

NOTE: if a PR build fails due to a network or Sherlock issue, you can rerun it by commenting on the PR on github with

retest this please