Jenkinsでジョブを複製するにはどうすればよいですか?


231

Jenkins持っているGerrit私たちがチェックインを行うとき、そのような場所でプラグインをGerritJenkinsビルドを実行し、それが成功した場合、その後で変更がGerrit確認されました。ビルドが失敗した場合は失敗しません。私の理解では、これはで設定されたジョブを通じて達成されるということですJenkins。これで新しいブランチ(git)が作成されました。他のブランチを指す既存のジョブを複製して、この同じワークフローが発生し、コミットごとにビルドが実行されるようにする必要があると思います。誰かが私がこれらの仕事をクローンする方法を説明できますか?UIを介してそれを行う方法が表示されないようです。また、UIを介してジョブを一覧表示する方法も表示されません。


7
「新規ジョブ」ページのオプションの1つとして「既存のジョブをコピー」できるはずです。stackoverflow.com/questions/3133537/…を
nofinator 2014年

回答:


180

既存のジョブをコピーするにhttp://your-jenkins/newJobは、「既存のジョブをコピー」オプションに移動して使用します。既存のジョブの名前を入力します-Jenkinsは、それが存在するかどうかを確認します。

Jenkinsのフロントページのデフォルトのタブには、既存のジョブがすべてリストされているはずですが、前任者がタブを削除した可能性があります。からすべてのジョブをリストする新しいタブを作成できますhttp://your-jenkins/newView.


既存のジョブをコピーするときは、名前(ジョブにアクセスするときにURLのようにエンコードされない)を指定する必要があるので、ジョブ名にスペースが含まれている場合は保持されることに注意してください。まもなく、ジョブの元の名前だけを入れて、他には何も入れません。
ヤウヘン

ez-templateプラグインをインストールすると、「既存のジョブをコピー」がテンプレートまたはテンプレートを使用するジョブに適用され、テンプレートに依存する新しいジョブが作成されます。実際に独立したコピーが必要な場合は、Use another job as a template構成を削除できます。
user598656

146

ジョブのクローンを作成できます。

  1. 「新しいアイテム」リンクをクリックします
  2. 仕事に新しい名前を付けます
  3. ラジオボタン「既存のアイテムをコピー」を選択します
  4. 複製したいジョブ名を付けます
  5. 「OK」をクリックします

最後に、クローンされたジョブのすべての機能を反映する新しいジョブがあります。


117

ジェンキンス2.9

  1. ジェンキンス> 新しいアイテム

    ジェンキンスの新作

  2. アイテム名を入力してください -例: "MY_CLONE"

    アイテム名を入力してください

  3. ソース(コピー元)ジョブを指定> OK

    名前の入力を開始すると、既存の値が見つかります。これは大文字と小文字が区別されることに注意してください。

    OKからコピー

  4. デフォルト値を保持する場合は、[ 保存]をクリックします

  5. これで、両方のジョブが同じ場所で利用可能になります。

    仕事を見る


3
写真は千の言葉の価値があります。私の人生の小さなドロップダウンを見つけることができませんでした。ムルミミリ
マイケル

34

New Item> Project Name= abc>の代わりにFreestyle jobCopy from job name of already existing jobs

ディレクトリからコピーしたいフォルダ内にいる場合は、を使用します../


言及していただきありがとうございます../
Satevg

14

同じJenkinsで異なるサブフォルダーにコピーする場合は、新しいアイテムを作成し、[コピー元]を使用します。新しいジョブは同じディレクトリに複製されます。次に、移動オプションを使用して、目的のディレクトリに移動します


これは私が使用したものです。同じフォルダにコピーするだけでは十分でないことがよくあります。ありがとう!
donmartin 2018

11

上記の答えはすべて良いです。ただし、ジョブ用の「フォルダー」を作成した場合、状況は少し異なります。

新しいジョブを作成するフォルダをクリックします。次に、左側のメニューで[新しいアイテム]をクリックします。これで、「新しいジョブ」のURLは次のようになります(「my-folder」の下に新しいジョブを作成するとします):

http://my-jenkins:8080/job/my-folder/newJob

Enter an item name、目的の新しいジョブ名を入力します。次にCopy from、下部にあるテキストボックスを使用します。ソースジョブのジョブパスを入力します。

たとえば、ソースジョブがフォルダの下にsrc-folderあり、ジョブの名前がである場合、[ コピー元]ボックスsrc-jobに入力する必要がありsrc-folder/src-jobます。

それが役に立てば幸い。


私はまだジョブをフォルダー構造間でコピーする方法を見つけようとしています:Jenkinsはフォルダーである新しいアイテムごとにリテラル「ジョブ」を追加します。たとえば、localhost:8080 / job / x / job / y / job_1にジョブがありますここで、xとyはフォルダーです。job_1は実際のジョブです。このジョブをlocalhost:8080 / job / x / job / z / job_1にコピーするにはどうすればよいですか?私は運が悪ければソースジョブへのすべての参照を試みました。
ハインツ

1
に移動しlocalhost:8080/job/x/job/y/job_1ます。そのページに、が表示されFull project nameます。ソースを指定するときにそれを使用してみてください。
ブーシャン2017

同じレベルの2つのフォルダーがfolder1ありfolder2、にコピーfolder1\job1するfolder2\job1場合は、フォルダーに新しいアイテムを作成し、folder2を使用..してフォルダー構造に戻ってコピーできます../folder1/job1
DRz 2018

10

プロジェクトリンクコピープラグインを使用することもできます。

これにより、プロジェクトの左側のパネルにリンクが追加されます。

ここに画像の説明を入力してください

次の画面で、新しいジョブ名を尋ねられます。

ここに画像の説明を入力してください


10

私の場合、1つのjenkinsインスタンスから別のインスタンスにジョブをコピーする必要がありました。

したがって、最初に古いJenkinsのディレクトリ構造(ジョブ/ディレクトリ名、config.xmlも記載)を調べ、次に新しいjenkinsのディレクトリ構造を調べ、同じ名前/ジョブでディレクトリを作成してコピーしました。この新しく作成されたディレクトリの下のconfig.xml。

次に、[Jenkinsの管理]で[ディスクから構成を再読み込み]をクリックします。それでおしまい。


「ディスクから設定を再読み込み」するヒントをありがとう!
アリザ

1
ええ、複数のアイテムを一括コピーする必要がある場合は、このようにします。「ディスクからの再読み込み」の前に、config.xmlの一部のパラメーター、テキストの一部などを検索/置換するなど、CLIで必要な手作業を行うこともできますconfig.xmlがあるディレクトリの名前はジョブの名前であることに注意してください(したがって、Rohitとは異なり、新しいジョブを作成する必要がある場合は、別の名前を付けてください)。
RAM237

私の意見では、内部に多くのジョブがあるフォルダーのいくつかのレベルがある場合、これが最良のオプションです。
カブレラカナル

3

新しいアイテムを作成し、最後に移動して、既存のものからコピーするオプションを見つけます。現在のジョブ名を書き込むだけで、そのプロジェクトのクローンを操作できます。


1

Jenkinsジョブをサブフォルダーからコピーできませんでした。 copy fromオプションは、私が探していた提案を表示しませんでした。提案を使用せずにジョブ名をコピーすることはできませんでした。

したがって、外部フォルダからジョブを作成する場合は、最初にサブフォルダにジョブを作成してから、それを配置する必要がある別のフォルダに移動する必要があります。



0

ここでのすべての回答は非常に役に立ちますが、ジェンキンスに関する非常に奇妙なバグを1つ見逃してしまいます。新しいジョブ設定を編集した後、ズームレベルが高すぎると、saveまたはapplyボタンオプションが表示されない場合があります。ボタンはページ上にあり、ズームレベルによって非表示になっているため、ページの左下にボタンが表示されるまでズームアウトする必要があります。

奇妙なことです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.