https://github.com/jenkinsci/jobcopy-builder-plugin
Jenkins plugin to copy a job in a build step.
https://github.com/jenkinsci/jobcopy-builder-plugin
adopt-this-plugin
Last synced: 9 months ago
JSON representation
Jenkins plugin to copy a job in a build step.
- Host: GitHub
- URL: https://github.com/jenkinsci/jobcopy-builder-plugin
- Owner: jenkinsci
- Created: 2013-01-12T14:44:51.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2023-06-06T07:25:20.000Z (over 2 years ago)
- Last Synced: 2025-01-30T04:41:26.784Z (9 months ago)
- Topics: adopt-this-plugin
- Language: Java
- Homepage: https://plugins.jenkins.io/jobcopy-builder/
- Size: 224 KB
- Stars: 3
- Watchers: 98
- Forks: 26
- Open Issues: 7
-
Metadata Files:
- Readme: README.adoc
- Changelog: CHANGELOG.adoc
Awesome Lists containing this project
README
= Jobcopy Builder plugin
:sectanchors:
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.:toc:
[[JobcopyBuilderplugin-Whatsthis]]
== 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.[[JobcopyBuilderplugin-Screenshots]]
== Screenshots. You can add "Copy Job" build step. +
#image:docs/images/01-configure.png[image]#
. "Copy Job" performs additional operations. Replacing strings in the
configuration, enabling a disabled job.
* The job copied from +
#image:docs/images/02-copyfrom01.png[image]#
* The job copied to. String "VERSION" is replaced, and the job is
enabled. +
#image:docs/images/03-copyto01.png[image]#
. 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. +
#image:docs/images/04-copyfrom02.png[image]#
* The job copied to. String "VERSION" is replaced. +
#image:docs/images/05-copyto02.png[image]#[[JobcopyBuilderplugin-Howdoesthiswork]]
== How does this work?This plugin works as following:
. Reads the configuration xml (config.xml) of the copying job.
. Applies the operations to the configuration xml string.
. Create a new job with the processed configuration xml string.[[JobcopyBuilderplugin-Extensionpoint]]
== Extension pointA new way to provide choices can be added with implementing
`+JobcopyOperation+`, overriding the following method:[source,java]
----
public String perform(String xmlString, String encoding, EnvVars env, PrintStream logger);
----or, with extending `+AbstractXmlJobcopyOperation+`, overriding the
following method:[source,java]
----
abstract public Document perform(Document doc, EnvVars env, PrintStream logger);
----[[JobcopyBuilderplugin-Usedwithpromotedbuilds]]
== Used with promoted buildsWhen used with
https://plugins.jenkins.io/promoted-builds/[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".[[JobcopyBuilderplugin-Permissionstocopyjobs]]
== Permissions to copy jobs* "Copy Job" build step requires following permissions.
+
[cols=",,",options="header",]
|===
|Target Job |Required permissions |Notes
|Item to copy from |Job/Read, Job/ExtendedRead |Job/ExtendedRead is
displayed only when you install
https://plugins.jenkins.io/extended-read-permission/[Extended
Read Permission Plugin]. You can grant it by granting Job/Configure
instead.|Item to copy to (when create) |Job/Create |
|Item to copy to (when overwrite) |Job/Read, Job/Configure |
|===
* "Copy Job" defaults to run as ANONYMOUS.
** If you want "Copy Job" run as a specific user, use other plugins
authenticate builds. e.g.
https://plugins.jenkins.io/authorize-project/[Authorize
Project plugin][[JobcopyBuilderplugin-Issues]]
== IssuesTo 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
https://www.jenkins.io/participate/report-issue/[How to
report an issue]* https://issues.jenkins-ci.org/issues/?jql=resolution%20%3D%20Unresolved%20AND%20component%20%3D%20jobcopy-builder-plugin[Open
Issues]
* https://issues.jenkins-ci.org/secure/CreateIssueDetails!init.jspa?pid=10172&issuetype=1&components=17506&priority=4&assignee=ikedam[Bug
report]
* https://issues.jenkins-ci.org/secure/CreateIssueDetails!init.jspa?pid=10172&issuetype=4&components=17506&priority=4[Request
or propose an improvement of existing feature]
* https://issues.jenkins-ci.org/secure/CreateIssueDetails!init.jspa?pid=10172&issuetype=2&components=17506&priority=4[Request
or propose a new feature]include::CHANGELOG.adoc[]