私はそれを理解するためにしばらく時間がかかりました。あなたは今すぐ上のノードとワークスペースを持っている
import org.jenkinsci.plugins.workflow.job.WorkflowRun
import org.jenkinsci.plugins.workflow.flow.FlowExecution;
import org.jenkinsci.plugins.workflow.graph.FlowGraphWalker;
import org.jenkinsci.plugins.workflow.graph.FlowNode;
import org.jenkinsci.plugins.workflow.graph.StepStartNode;
import org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode;
import org.jenkinsci.plugins.workflow.actions.WorkspaceAction
...
...
b = item.getLastBuild()
if(b instanceof WorkflowRun) {
exec = b.getExecution();
if(exec == null)
continue;
FlowGraphWalker w = new FlowGraphWalker(exec);
for (FlowNode n : w) {
if (n instanceof StepStartNode) {
action = n.getAction(WorkspaceAction);
if(action) {
String node = action.getNode().toString();
String workspace = action.getPath().toString();
}
}
}
}
:(ワークフローの実行が複数のワークスペースを持つことができるよう) あなたはWorkflowRunから次のようにワークスペースにアクセスすることができます。これにより、ノード・ステップで取得されたワークスペースと、wsステップで取得されたワークスペースが取得されます。 ノード/ワークスペースを保存することをお勧めします。複雑なパイプライン上で複数のノード/ワークスペースを取得することをお勧めします。
ありがとうございました。私はそれが私を助けることができるか分からない。 私はプラグイン(Javaプラグイン)からのアクセスが必要です。 私はバックエンドオブジェクトで作業しています:WorkflowRun.javaとFlowNode.java。 これらのクラスからアクセスポイントが必要です – ALAL
悪いです。私はあなたがパイプラインコードを介してアクセスすることを指していると思った。 – eyalstoler