jenkins - Jenkins 插件 - 如何获取当前正在执行的工作?
问题描述
我正在构建一个 jenkins 管道插件(要从管道调用的方法),并且需要获取有关当前正在运行的作业的检索信息,该作业调用了我的方法。
我发现有几个问题在谈论它,例如这里 - Jenkins Plugin How to get Job information。
但是我不知道如何使用这些信息。我确实可以访问 Jenkins 实例,但没有关于当前项目、工作、构建等的任何信息。我怎样才能获得这些信息?
注意,这是一个管道步骤插件,里面没有perform
方法。
解决方案
好的,经过一番搜索,终于在最明显的地方找到了答案——写流水线步骤插件的文档和对应的API文档。
做到这一点的方法是从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;
}
}
...
}
推荐阅读
- xamarin - 错误地进入 azure 时出现日期/时间错误
- css - Artetics 性感灯箱问题
- android - android-架构组件在android上什么也不返回
- php - 在 Drupal 8 中更改节点主体
- android - Android 房间列表或可变列表返回类型
- key-value - 如何在 etcd v3 中使用 ls?
- react-native - 在本机反应中禁用 TextInput 的剪贴板
- pyspark - 使用 pyspark 读取复杂的 json 模式
- uml - 如何在 UML 对象图中对不同类之间的属性依赖关系进行建模?
- python - 如何从 Python 中的对象方法惯用地打开多个托管资源