Adding jobs

If you are a project administrator, you have the permissions to create new jobs. This page details the different types of job available and when they should be used. New jobs can be added by navigating to the project you wish to create the job for and then clicking New Item in the sidebar.

Add project
New Item page

Item Name

When naming your job it is highly recommended to choose a name without spaces, for example: compile_test or gcc_483_build, as the name is included in the build path. During job configuration a more readable display name can be chosen, which will be used in the web interface.

Items can be renamed after creation without the loss of build history, so choosing an ideal name initially is not essential.

Freestyle project

The freestyle project is the simplest build type. A freestyle job allows the maximum amount of configuration and targets a specific build configuration. For example, one job may compile and run tests on the GCC 4.8.3 compiler on Linux every night, whereas another might only run static analysis tools after every commit.

For help on configuring freestyle jobs see the freestyle page.

Maven project

Maven projects target Java projects built using the Maven build system. We do not currently support or recommend using the Maven project type.


The Pipeline is a new Jenkins job type with allows the configuration to be stored in the code repository along with a number of other useful features. For new projects, or projects where multiple branches are in use, we would recommend the use of a Pipeline job type. For more details see the Pipeline guide page.

External job

This is a niche job type which allows jobs run outside of Jenkins to be managed. We do not recommend using this project type.

Multi-configuration project

Multi-configuration projects are useful when you have a large number of very similar jobs. They allow all of the configuration of a standard freestyle project, but they also allow a job to be built across a user-specified range of options, e.g. platforms or compilers. In general a sub-item is created for each combination of ranges; for example, if the compiler range was gcc, clang and the operating system range was ubuntu, centos then four sub-items would be created.

Generally this type of project should be replaced with a Pipeline job, due to its additional flexibility.


Adding folders allows you to organise your build jobs into nested structures. For example you may find one folder per library or compiler makes it easier to understand and find your jobs. Jobs can be moved between folders after creation without the loss of history, so folders can be added as the number of jobs grows.

Multibranch Pipeline

The Multibranch Pipeline is an extension of the base Pipeline job which handles the creation of subjobs based on branches in the code repository. For more details see the pipeline guide page.

Copy Existing item

The 'Copy Existing item' options allows you to copy the configuration of an existing job. To specify another job in your folder, you need to use the syntax foldername/jobname. In both the foldername and the jobname the item name should be used, rather than the display name.