繁体   English   中英

如何在Jenkins中的特定节点上从TFS检出并运行管道文件?

[英]How to checkout and run pipeline file from TFS on specific node in Jenkins?

我正在尝试运行一个管道作业,该作业从TFS获取其管道文件,但是工作空间和检出的映射是在主服务器而不是从服务器上完成的。

我有安装在Linux机器上的Jenkins-master,我将Windows机器作为从机器连接到它。 我为TFS选择了“ 来自SCM管道脚本 ”选项来创建管道作业。
我怎样才能使Windows Slave运行该管道作业

主服务器无法运行该作业,因为它正在Linux上运行,并且在尝试将工作空间映射到TFS以下载管道脚本并运行它时会失败。
即使我创建另一个管道作业并选择对脚本进行硬编码以运行我的原始管道作业,如下所示:

node('WIN_SLAVE') {
      build job: 'My_Pipeline'
}  

没用

而且我在输出中看到(上面的)initiali脚本实际上是在Windows从属服务器上运行的,但是当它构建作业“ My_Pipeline”时,它仍然尝试在Linux机器路径下将工作空间映射到Jenkins-master。 var / jenkins / ...,但失败。

如果初始管道脚本在Windows从站上运行,为什么其他管道脚本未在同一节点上运行? 为什么要再次尝试从TFS检出管道文件到Jenkins-Master?

如何使Windows Slave检出管道文件并运行它?

这里有一些要检查的东西...

  1. 确保已禁用原始作业,或者正在完全重新定义它以在从属服务器上运行,因为您表示已为从属服务器设置了“另一个作业”。 看来其他工作只是在触发先前的工作,而不是定义自己的规范。 当作业在从属服务器上运行时,它将在原始作业中运行任何设置。

另外,如果选中将更改推送到TFS时要构建的框,那么每次对TFS进行更改时,您的原始作业仍可能尝试运行。

  1. 验证从属服务器的远程根目录是否在“管理Jenkins”->“管理节点”下的从属服务器配置中正确设置。

由于此从属作业正在触发您最初在主服务器上创建的另一个作业,因此它将按预期在主服务器上构建。

代替引用My_Pipeline作业,而将My_Pipeline作业本身更改为在从属服务器上运行。 如果您对原始作业使用声明性管道,请在原始作业设置内更改该原始作业以在从属服务器上运行。 您可以按照上面的指示进行操作,只需在原始作业中定义节点即可。

如果原始作业是自由样式项目,则有一个标题为Restrict的复选框,可以在其中运行该项目 检查并在标签表达式中包括从站的名称。 当您运行作业时,它将被限制为从属。

最后,发布My_Pipeline作业将很有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM