我正在构建一个jenkins管道插件(要从管道中调用的方法),并且需要获取有关当前正在运行的作业的信息,从而调用了我的方法。
我发现有两个问题正在讨论,例如这里-Jenkins Plugin How to get Job information。
但是我还不知道如何使用此信息。我确实可以访问Jenkins实例,但是没有有关当前项目,工作,构建等的任何信息。如何获取该信息?
请注意,这是一个管道步骤插件,其中没有perform
方法。
答案 0 :(得分:0)
好吧,经过搜索,我终于在所有地方中最明显的地方找到了答案-documentation for writing pipeline steps plugins和相应的API documentation。
做到这一点的方法来自Execution
类。在其中,只需调用getContext()
,该函数将返回StepContext
,然后返回.get
方法来获取您需要的其余内容:
public class MyExecution extends SynchronousNonBlockingStepExecution<ReturnType> {
...
@Override
protected ReturnType run() throws Exception {
try {
StepContext context = getContex();
// get currently used workspace path
FilePath path = context.get(FilePath.class);
//get current run
Run run = context.get(Run.class);
// ... and so on ...
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
...
}