Jobcopy Builder

This plugin is up for adoption! We are looking for new maintainers. Visit our Adopt a Plugin initiative for more information.

This plugin adds "Copy Job" as a build step.You can select how to retrieve choices, including the way to share choices among all jobs.

What’s this?

This plugin provides a Copy Job build step:

  • It makes a new job from an existing job.

    • You can copy multiple jobs in one build execution with specifying multiple Copy Job build steps.

    • Can be applied to any type of jobs.

  • You specify following parameters.

    • From Job Name

      • Variable expressions can be used.

    • To Job Name

      • Variable expressions can be used.

    • Overwrite

      • Specifies whether to overwrite the destination job if it already exists.

  • Additional operations can be performed when copying.

    • Enable Job: Enabling the destination job if the source job is disabled.

    • Disable Job: Disabling the destination job if the source job is enabled. ( >= 1.3.0)

    • Replace String: Replace strings in a job configuration.

      • Source and destination strings can contain variable expressions.

  • Additional operation can be extended by using Extension Points.


  1. You can add "Copy Job" build step.

  2. "Copy Job" performs additional operations. Replacing strings in the configuration, enabling a disabled job.

    • The job copied from

    • The job copied to. String "VERSION" is replaced, and the job is enabled.

  3. Replacing strings can be applied to any part of configurations, including that of plugins. This is a example that the branch field of Git plugin is replaced.

    • The job copied from.

    • The job copied to. String "VERSION" is replaced.

How does this work?

This plugin works as following:

  1. Reads the configuration xml (config.xml) of the copying job.

  2. Applies the operations to the configuration xml string.

  3. Create a new job with the processed configuration xml string.

Extension point

A new way to provide choices can be added with implementing JobcopyOperation, overriding the following method:

public String perform(String xmlString, String encoding, EnvVars env, PrintStream logger);

or, with extending AbstractXmlJobcopyOperation, overriding the following method:

abstract public Document perform(Document doc, EnvVars env, PrintStream logger);

Used with promoted builds

When used with Promoted Builds Plugin, the configurations of promotions are not copied for they are not stored in config.xml.
Do as followings:

  • Click "Advanced" in "copy Job"

  • Add "Additional File Sets", specify "promotions/*/config.xml" in "Files".

Permissions to copy jobs

  • "Copy Job" build step requires following permissions.

    Target Job Required permissions Notes

    Item to copy from

    Job/Read, Job/ExtendedRead

    Job/ExtendedRead is displayed only when you install Extended Read Permission Plugin. You can grant it by granting Job/Configure instead.

    Item to copy to (when create)



    Item to copy to (when overwrite)

    Job/Read, Job/Configure


  • "Copy Job" defaults to run as ANONYMOUS.


To report a bug or request an enhancement to this plugin please create a ticket in JIRA (you need to login or to sign up for an account). Also have a look on How to report an issue