web-dev-qa-db-ja.com

Jenkins / Hudsonでのジョブ名の変更

私はハドソン/ジェンキンスの仕事の名前を変更しようとしました。ただし、名前の変更に失敗しました。

ジョブの名前を変更する方法はありますか?

27
user2010736

次の手順に従って、選択したジョブの名前をjenkins UIから変更できます。

job>configure>Advanced Project Options>Display Name

他の方法は、Jenkins/hudsonサーバー上のディレクトリの名前を変更してから、restart the Jenkinsに名前を変更することです。

62
MangeshBiradar

完全を期すために、Groovy script console を使用したHudsonジョブ名の更新について言及したいと思います。

// Groovy script to rename job in Hudson
import hudson.model.*;

def JOB_PATTERN = ~/^MY_JOB.*$/; //find all jobs starting with "MY_JOB".
def NEW_PART = "_NEW"

(Hudson.instance.items.findAll { job -> job.name =~ JOB_PATTERN }).each { job_to_update -> 
    println ("Updating job " + job_to_update.name);
    def new_job_name = job_to_update.name + NEW_PART; //Append new part to the job name
    println ("New name: " + new_job_name);
    job_to_update.renameTo(new_job_name);
    println ("Updated name: " + job_to_update.name);
    println("="*80);
}

数十個のジョブを同時に更新する必要がある場合は、かなり役立ちます。

:次のコードは機能しません:

job_to_update.name = new_job_name;
job_to_update.save();

ジョブの名前を新規に設定して構成を保存しても、現在のジョブの名前は変更されませんが、新しい名前でジョブ構成のコピーが作成されます。また、この場合、破損した参照が存在する可能性があるため、Hudsonは構成を再ロードする必要があります。

16
artdanil

ジョブの名前を変更する通常の方法:

Configure画面に移動し、右上のProject nameフィールドを編集します。次に、保存をクリックし、はいをクリックして確認します。 (do notApplySaveの横のボタンをクリックすると、エラーメッセージが表示されます:- JENKINS-17474

表示名を変更しても、ジョブの名前は変更されず、表示方法のみが変更されます。たとえば、検索ボックスを介して元の名前で引き続き検索され、URLにも表示されます。

ファイルシステムレベルでディレクトリの名前を変更する必要はありません。

11
marc.guenther

簡単に理解できるように、スクリーンショットをいくつか使用しました。

Jenkinsバージョン:2.148を使用しました

ステップ1:

ホーム画面/ジョブリストで、ジョブオプションをクリックしてください。

enter image description here

OR

ジョブの詳細を開くだけで、名前を変更するための左側のオプションが表示されます。

enter image description here

ステップ2:

新しい名前を入力して、をクリックします名前変更ボタン

enter image description here

8
Rikin Patel
  1. 新しい名前で新しいジョブを作成します。copy from既存のジョブ。
  2. copy from名前を変更するジョブ。
  3. 元のジョブを削除します。

これで、名前が異なる同一のジョブができました。

4
aditi

私が通常選択する要件に応じて:

Job>Configure-modifyプロジェクト名プロパティ-プロジェクトの詳細オプション、ヒット詳細...、値を設定for表示名

次に、ジョブを保存します。ファイルシステムレベルで名前を変更する必要はありません。

1
MrsTang

Marcのスクリプトを機能させることはできません。そのため、以下に示すように、[すべてのジョブを無効にする]スクリプトに基づいてスクリプトを作成します。これは、「Findur.OpenComponent」を持つプロジェクトの名前を「Findur.OpenComponents」に変更することです。

import hudson.model.*

renameChildren(Hudson.instance.items)

def renameChildren(items) {
  for (item in items) {
    if (item.class.canonicalName != 'com.cloudbees.hudson.plugins.folder.Folder') {     
      if (( m = item.name =~ /^(Findur.OpenComponent)(\..*)$/)){
        println(item.name)
        println m.group(1) + " " + m.group(2)
        newname = m[0][1] + 's' + m.group(2)
        item.renameTo(newname)
      }

    } else {
        renameChildren(((com.cloudbees.hudson.plugins.folder.Folder) item).getItems())
    }
  }
}
1
Jirong Hu

関数 Job.previousNames() を使用して、[ジョブジェネレーター](ジョブジェネレータープラグイン)(ファクトリー)内でGroovyスクリプトを使用して複数のジョブの名前を変更します。

次の例では、ジョブの名前を変更しますci.*_2からci.*(末尾の_2)。

[
    [env: '01', hostname: 'Host01.intranet'],
    [env: '02', hostname: 'Host02.intranet'],
    [env: '03', hostname: 'Host03.intranet'],
    [env: '04', hostname: 'Host04.intranet'],
    [env: '05', hostname: 'Host05.intranet'],
    [env: '06', hostname: 'Host06.intranet'],
    [env: '07', hostname: 'Host07.intranet'],
    [env: '08', hostname: 'Host08.intranet'],
    [env: '09', hostname: 'Host09.intranet'],
    [env: '10', hostname: 'Host10.intranet'],
    [env: '11', hostname: 'Host11.intranet'],
    [env: '12', hostname: 'Host12.intranet'],
    [env: '13', hostname: 'Host13.intranet'],
    [env: '14', hostname: 'Host14.intranet'],
    [env: '15', hostname: 'Host15.intranet'],
    [env: '16', hostname: 'Host16.intranet'],
    [env: '17', hostname: 'Host17.intranet'],
    [env: '18', hostname: 'Host18.intranet'],
    [env: '19', hostname: 'Host19.intranet'],
    [env: '20', hostname: 'Host20.intranet'],
].each { Map config ->
    job("ci.${config.env}") {
        previousNames("ci.${config.env}_2")
        description("Continuous Integration on Host ${config.env}")
        logRotator {
            numToKeep(5)
            daysToKeep(45)
        }
        label('build')
        wrappers {
            colorizeOutput('gnome-terminal')
        }
    }
}
0
olibre