2016-07-22 7 views
7

jenkinsパイプラインのpocをコードとして実行しようとしています。私はGithub組織フォルダープラグインを使用してGithub組織をスキャンし、ブランチごとにジョブを作成しています。 Jenkinsfileから取得するパイプラインジョブの名前を明示的に定義する方法はありますか?私はまた、仕事のためのいくつかの説明を追加したい。Jenkinsfileからパイプライン名と説明を設定してください

+0

Jenkinsfileのスニペットを表示できますか? – Jayan

+0

ビルドの説明ではなく、仕事/プロジェクトの説明を変更しようとする人のために、https://stackoverflow.com/questions/39200948/jenkins-multibranch-change-job-description-from-groovy – Mark

答えて

11

currentBuildを使用する必要があります。 node部分が重要である

node { 
    currentBuild.displayName = "$yournamevariable-$another" 
    currentBuild.description = "$yourdescriptionvariable-$another" 
} 

編集:上記1元の質問には、ジョブの名前を変更する程度であるとしてどこ構築名前を変更します。パイプラインの 次のスクリプトは、私はJenkinsfileの私ジェンキンスパイプラインを記述するために受け入れ答えからコードスニペットを使用してみました(これは適切な権限が必要です)

item = Jenkins.instance.getItemByFullName("originalJobName") 
item.setDescription("This description was changed by script") 
item.save() 
item.renameTo("newJobName") 
+1

こんにちはジャヤン、ありがとうございます応答。私はすでにcurrentBuild.descriptionオプションを試しました。ビルド履歴セクションのビルド番号の下にタグとして表示されました。しかし、私は、それらがジョブのための "View Configuration"オプションの下に表示されるようにこれらを設定しようとしています。それは実践ですか? – HarshaB

+0

プラグインのオプションが表示されませんでした。上記の回答がrenameTo apiを使用して更新されました(すでに見ているかもしれません) – Jayan

+0

ありがとうございます。それは魅力のように働いた。まさに私が望んでいたもの。 Jenkins-> In-Processスクリプトの承認を得てスクリプトを承認することで、それらのスクリプトを実行できるようにする必要がありました。手動で新しいクラスを追加する方法はありますか?私が今やったやり方は、このスクリプトで使用したクラスを一度に1つずつ選択するという承認オプションを選択することでした。クラスを手動で入力して承認することはできませんでした。 – HarshaB

2

ことを行います。私はコードスニペットを@NonCPS注釈付きの関数にラップし、アイテム変数にdefを使用しなければなりませんでした。私はノードのセクションではなく、Jenkinsfileのルートにコードスニペットを配置しました。

@NonCPS 
def setDescription() { 
    def item = Jenkins.instance.getItemByFullName(env.JOB_NAME) 
    item.setDescription("Some description.") 
    item.save() 
} 

setDescription() 
0

私はこの1つ上のパーティーに遅れてんだけど、この質問は、私は、今日私の一日の大半を過ごしたチャット#jenkinsで私を余儀なくされました。私は、私の状況のた​​めにこれを優雅な方法で解決するためのチャットから@ tang ^に感謝したいと思います。次の手順は、ステージでブロックを使用マルチブランチ宣言型パイプラインでの子供のための仕事の説明とJOB表示名を設定するには

steps { 
    script { 
     if(currentBuild.rawBuild.project.displayName != 'jobName') { 
      currentBuild.rawBuild.project.description = 'NEW JOB DESCRIPTION' 
      currentBuild.rawBuild.project.setDisplayName('NEW JOB DISPLAY NAME') 
     } 
     else { 
      echo 'Name change not required' 
     } 
    } 
} 

これは、あなたは、個々のスクリプトが通じ呼び出しを承認することが必要になりますジェンキンスのサンドボックス承認方法でしたが、親パイプラインの実際の子の名前を変更する方法については、ウェブ全体でわかっていたことよりはるかに簡単でした。最後に注意すべき点は、環境変数を使用して設定されているジョブ項目を操作できるJenkinsfileでこれが機能することです。

関連する問題