是否可以在从属服务器上运行Jenkins作业,使用作为第一个作业的输出创建的excel文件并在Master上运行下一个作业?

时间:2017-09-14 18:40:19

标签: jenkins continuous-integration jenkins-plugins jenkins-pipeline

我正在尝试在奴隶上运行Jenkins工作。作为第一个作业的结果,创建了一个excel文件。 我希望在第一个作业完成后在主服务器上运行第二个参数化作业,具体取决于excel的值。

到目前为止,我尝试了以下选项:
 1. 使用加入插件。这不起作用,因为第二个作业是参数化的,我必须从excel文件中获取输入。没有选项可以提供选项或从文件中读取参数  2. 主服务器上的管道 - 出于某种原因,当我在主服务器上创建管道并执行第一个从属作业时,从服务器等待一个插槽运行,因为一个作业已在运行且主要工作正在等待奴隶的工作运行。所以它导致死锁。

1 个答案:

答案 0 :(得分:0)

管道(脚本化,非声明性)听起来像是要走的路。

类似的东西:

node('MySlaveLabel') {
  ...do your stuff here...
  stash includes: 'myExcelFile.xls', name: 'myExcelFile'
}

node('MyMasterLabel') {
  unstash 'myExcelFile'
  ...examine your Excel file here..
  ...add conditional statements...
}

只要节点块没有嵌套,就只需要从机上有1个执行程序,主机上只有1个执行程序。

如果由于某种原因你实际上需要工作来互相打电话:

  1. 使用build 'anotherProject'语法。
  2. 确保奴隶上有足够的执行者。