2017-06-26 15 views
3

jenkinsで実行中のパイプラインジョブを実行しています。ジョブのGroovyスクリプトでそのノードで実行されているノード名がわかります。ノード名を取得する方法はありますか?私はこの試みたalsegroovyを使用してjenkinsで現在のビルドのノード名を取得する方法

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified method org.jenkinsci.plugins.workflow.job.WorkflowRun getBuiltOn 

print currentBuild.getBuiltOn().getNodeName() 

エラーは次のとおりです。

def build = currentBuild.build() 
print build.getExecutor().getOwner().getNode().getNodeName() 

をしかしreulst 'は

答えて

4
を' され

は、私は以下のコードを試してみました

envirがありますこれを持つ変数 'NODE_NAME'があります。

あなたはこのようにそれにアクセスすることができます。

echo "NODE_NAME = ${env.NODE_NAME}" 

あなたはパイプラインジョブを編集している、あなたは(ページの左)、「パイプラインの構文」ヘルプリンクに行くことによって、利用可能なすべての環境変数を見つけることができ、その後「グローバル変数」セクションを探し、「グローバル変数リファレンス」をクリックします。利用可能な環境変数をリストするセクション "env"があります。

+0

私にとって、これは 'NODE_NAME = null'を表示します。これはパイプラインのバグですか? – DoDo

+0

パイプラインがノードを割り当てない場合は、宣言パイプラインに「エージェントなし」がある場合はnullが返されます。これはJenkins上でノードを宣言したり、executorを取ったりしない "flyweight executor"を使用しています - ここでは、https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.mdに記載されています – macg33zr