我已经实现了自定义的兼容管道的Jenkins插件,该插件扩展了data_DF = data_DF.groupby(pd.Grouper(freq='5min')).agg({'open':'first',
'close':'last',
'high':'max',
'low':'min'})
open close high low
time
2018-12-29 07:30:00 3411.4 3413.9 3413.9 3411.4
2018-12-29 07:35:00 3413.9 3413.1 3416.1 3411.9
2018-12-29 07:40:00 3413.1 3422.9 3427.5 3413.1
2018-12-29 07:45:00 3421.1 3423.8 3431.7 3418.0
2018-12-29 07:50:00 3423.8 3428.2 3428.2 3418.9
类。我想在Jenkins Master vs Jenkins Slave上实现围绕执行的特定逻辑。如何在插件代码中检查该步骤是否在Master上运行?
答案 0 :(得分:0)
通常,插件执行在Jenkins从属中的构建执行器上进行。但是,要验证插件代码的哪一部分在主/从上执行,可以使用以下代码。
NODE_NAME
env var。您可以通过http://localhost:8080/env-vars.html在Jenkins实例中找到所有可用的环境变量(替换主机名以匹配您的实例)。在其中,您会找到NODE_NAME:NODE_NAME
如果该版本位于代理上,则为代理的名称;如果在主版本上运行,则为“ master”
记录/打印环境变量。以下是显示如何打印的代码段。在那里,我展示了使用setUp method of hudson BuildWrapper作为参考的示例。
@Override
public Environment setUp(final AbstractBuild build, final Launcher launcher,
final BuildListener listener) throws IOException, InterruptedException {
String node = System.getenv("NODE_NAME");
String msg = "I'm executing on node: " + node;
listener.getLogger().println(msg); //prints to build log
logger.info(msg); // slf4j logger - prints to catalina log/jenkins log
}
或者,您也可以将值写入文件,然后从文件中读取值。