It is possible to use discributed buolding with jenkins

  • Install icecc on the nodes
    • Edit the /etc/icecc/icecc.conf on each node
    • set:
      • ICECC_MAX_JOBS="4"
    • Max Jobs is the number of real cpu cores ($>cat /proc/cpuinfo | grep cores)

Jenkins configuration

  • add deamon execution and Path in the shell execution section and tell the parallel build level:
    • sudo killall iceccd || true # in case another daemon is still running, the || true ignores the return value
    • sudo iceccd -d --no-remote -m4 # start the dirtributed compiler deamon, give params, normally set in config file (-m<NUMBER_OF_CORES)
    • export PARALLEL=50 # how many parallel builds
    • export PATH=/usr/lib/icecc/bin:$PATH # enable parallel builds
  • at the end: kill the iceccd deamon (last line):
    • sudo killall iceccd # stop the deamon

in Docker

  • make sure the jenkins slave is started wit the -P option
  • make sure the container doesn't start an iceccd on its own
    • on 15.04: systemctl iceccd disable
    • on 14.04: update-rc.d iceccd disable
    • don't forget to commit and restart
Last modified 6 years ago Last modified on 05/29/15 16:16:49