Jenkins Heavy Job Plugin

Hello, Buildfarmers -

In an effort to reduce our compute costs on build.ros2.org, we’re making some changes to eliminate the reserved workers for jobs which can’t run in parallel with other jobs on the same worker. This is primarily the CI-style jobs, which parallelize the build within the job itself, and more importantly the performance jobs, where other jobs on the worker can invalidate the results.

To this end, we’re installing and enabling the Jenkins Heavy Job plugin so that we can make the CI jobs take up all of the slots on the worker. Unfortunately, installing this plugin will result in a new configuration snippet in all jobs, and not only the jobs which have a weight greater than the default weight of 1. For that reason, we’re adding it to the list of plugins deployed by default.

Because the ros_buildfarm jobs will be adding the config snippet to all of the jobs, existing buildfarm deployments should install the plugin so that manual job configuration modifications don’t remove the snippet and cause unnecessary diffs. The plugin should be installed even if there is no intent to use it.

The plugin is very lightweight, and I encourage anyone with security, performance, or maintainability concerns to take a look at the sources.

Please let me know if you have any questions!

Associated PRs:

2 Likes

These changes have been merged.

1 Like