Jenkins插件-如何获取当前执行的工作?

时间:2018-11-14 10:39:49

标签: jenkins jenkins-plugins jenkins-pipeline

我正在构建一个jenkins管道插件(要从管道中调用的方法),并且需要获取有关当前正在运行的作业的信息,从而调用了我的方法。

我发现有两个问题正在讨论,例如这里-Jenkins Plugin How to get Job information

但是我还不知道如何使用此信息。我确实可以访问Jenkins实例,但是没有有关当前项目,工作,构建等的任何信息。如何获取该信息?

请注意,这是一个管道步骤插件,其中没有perform方法。

1 个答案:

答案 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;
        }
    }

    ...
}