改变jenkins工作流程中的奴隶

时间:2016-04-01 11:53:57

标签: jenkins jenkins-workflow jenkins-pipeline

我正在配置一个Jenkins工作流程,要求是使用Linux(server1)编译部分工作流程而不是windows(server2)进行测试,因为测试工具与Linux不兼容,测试完成后需要切换回相同的Linux(server1)继续其余的工作流程。 如果不可能,如何在相同的工作流程中切换从属,有什么其他方法来实现这一点。 感谢建议!

2 个答案:

答案 0 :(得分:2)

如果通过jenkins-workflow,你的意思是Jenkins Pipeline,那么你可以这样做:

node('server1') {
    //some compilation steps
    node('server1') {
        // more compilation steps
    }
    //continue workflow for server1
}

您可以使用stash / unstash步骤在节点之间发送任何文件。

答案 1 :(得分:0)

一种可能的方法是使用包装器作业,该作业使用其他项目上的触发/调用构建来启动编译和测试作业。

这样你可以借助归档工件选项(你将使用编译后构建操作)和Copy Artifacts Plugin(你使用它)来移动工件在测试构建步骤中。

您可以通过作业中的默认配置轻松定义作业在哪台机器/标签上运行,或者在NodeLabel Plugin的帮助下动态定义

注意

你也可以尝试提到选项3 here,但我不确定它是否可以在不同机器之间移动文件时起作用。

可能值得一试,但好像它有效,这可能会更方便。