Skip to main content
Last updated on Nov 05, 2024 This feature is only available in Incredibuild’s Enterprise Plan. Jenkins is a continuous integration tool primarily used in software development flow to build and test projects continuously and monitoring executions of externally-run jobs. Its rich plugin ecosystem supports a wide variety of source control, build, test, analysis and deployment systems. Incredibuild is a build acceleration technology that allows builds, tests, and other development processes to execute in parallel over a distributed network. Incredibuild for Jenkins allows customer to scale their Jenkins nodes to seamlessly distribute compute processes across machines in the local network or public cloud. By using the aggregated idle CPU cycles across your network, Incredibuild effectively transforms any Jenkins node to become a super computer node that can scale to use hundreds of cores you already own instead of only its local cores, thus highly accelerating time-consuming jobs such as compilations, unit tests, QA scripts, code analysis, packaging, assets creation and more. In order to unleash the full benefit of Incredibuild, it is recommended to install Incredibuild on every Jenkins node and any other machine that can contribute its idle CPU cycles to the Incredibuild distributed platform. The remote machines that contribute their idle CPU cycles to the Incredibuild infrastructure only require to have an Incredibuild Agent installed on them. There is no need to copy your source code, tool chain or any other file to these remote machines. Once a process will be distributed by Incredibuild to be executed on a remote machine, all the data that will be required for the process to run successfully will be copied on demand to a special sandbox by Incredibuild’s process virtualization mechanism.

Setting up Jenkins to Run with Incredibuild

Prerequisites

The Incredibuild plugin for Jenkins has been tested to work on Jenkins 1.580.1 and later versions. However, it may work on earlier versions as well. The plugin has no dependencies on other plugins. An Incredibuild infrastructure is required to be set in your environment in order to be able to accelerate your Jenkins builds.

Installation

To install the Incredibuild plugin for Jenkins:
  1. Download the Incredibuild Jenkins plugin by clicking here.
  2. Copy the hpi file to: /JENKINS_HOME/plugins
  3. Restart the Jenkins service
For further information on installing plugins in Jenkins please refer to the Jenkins manual, “How to install plugins” section.

Plugin Configuration

The Incredibuild plugin requires no configurations.

Jenkins Agent Nodes Configuration

On each Jenkins node where an Incredibuild build step may execute, you need to make sure that an Incredibuild Agent is properly installed and configured. Additionally, make sure that the PATH variable contains the Incredibuild binaries folder when accessed by Jenkins.

Incredibuild Build Steps

Using Incredibuild Build Steps

The Incredibuild for Jenkins plugin provides wrappers around the Incredibuild’s BuildConsole and IBConsole commands as an alternative to running the commands in a shell or batch scripts.

Adding Incredibuild Build Steps to a Jenkins Job

The Incredibuild Jenkins plugin adds four new build steps, which are shown in the drop-down menu. To add an Incredibuild build step to a Jenkins job:
  1. Navigate to the Jenkins job you want to configure to execute an Incredibuild command.
  2. Click Configure in the upper-left area.
  3. In the build steps section of the page click Add build step in the dropdown menu and select one of the available Incredibuild build steps.
  4. Once a build step is added, you will be able to configure the step’s parameters just below the step’s title (see screenshots in the following sections). For each parameter, clicking the help icon will open a tooltip with relevant information for the selected parameter.
  5. See the following sections on how to configure each of the Incredibuild build steps.
  6. Click Save on the configuration page.

BuildConsole (Visual Studio)

This build step provides a wrapper around the Incredibuild BuildConsole command, for distributing and accelerating compilations of Visual Studio solutions or projects. For more information on using Incredibuild to accelerate Visual Studio compilations, see Incredibuild for Visual Studio.

Required Configurations

Step configuration requires setting the target solution to build together with the solution configuration or preset file. The plugin will validate that there are no contradictory options selected.

Optional Configurations

Other BuildConsole optional parameters are grouped as; Target and Configuration, Distribution Control, Output and Logging, Miscellaneous and Advanced. Incredibuild Jenkins plugin - Visual Studio build step

Incredibuild for Make and Other Build Tools

This build step provides a wrapper around the Incredibuild “BuildConsole \Command” command line, geared for accelerating the build process of projects based on Make, MSBuild, WAF, ninja, scons, CMake or other build systems that are supported by default by Incredibuild. For a full list of pre-defined supported build tools and more information on using Incredibuild to accelerate Make and other build tools, see Supported Tools.

Required Configurations

Step configuration requires setting the command to execute (e.g. make all). Note that by default, Incredibuild automatically adds a parallel processes switch (in Make, this switch is named -j; in MSBuild it is /m:). If a parallel processes switch is already part of the command line, Incredibuild will change its value to a larger value in order to execute (and distribute) much more processes in parallel. In MSBuild for example, Incredibuild will change the value of an existing /m switch to a /m64, in the Make build system the -J flag will be changed to -j200. If the executed command is given in a Batch file (i.e. /command = Batchfile), and the MSBuild command that runs the build is inside the Batch file, Incredibuild won’t be able to determine how to change the /m value, and therefore won’t change it. In this case, it is up to the user to replace or add a /m command with a high value to it (the recommendation is more than 40 for MSBuild and more than 100 to Make build system variants).

Optional Configurations

Optional BuildConsole parameters are grouped as; Distribution Control, Output and Logging and Miscellaneous.

Incredibuild for Dev Tools

This build step provides a wrapper around the Incredibuild “IBConsole” command line, geared for accelerating various multi-process custom executions, such as unit tests, QA scripts, packaging, code analysis, asset builds, simulations and others. For more information on using Incredibuild to accelerate various development executions such as: tests, code analysis, asset creation, or other custom executions, see Incredibuild for DevTools.

Required Configurations

Step configuration requires setting the command to execute (“MyUnitTests.bat”, for example).

Optional Configurations

Other BuildConsole optional parameters are conveniently grouped to Distribution control, Output and Logging and Miscellaneous.

Build Steps Configuration Fields Table

This section provides detailed information on each of the configuration fields available in the vaious Incredibuild for Jenkins build steps.