在詹金斯工作流程中改变奴隶

Changing slaves in jenkins-workflow

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

一种可能的方法是使用一个包装器作业,它开始编译和测试作业 Trigger/call 建立在其他项目.

这样您就可以借助 Archive the artifacts 选项(您将在编译 post-build 操作中使用)和 Copy Artifacts Plugin(您将在测试构建步骤中使用)。

您可以轻松定义 machine/label 您的作业 运行,既可以通过作业中的默认配置静态定义,也可以借助 NodeLabel Plugin

动态定义

备注

您也可以尝试提到的选项 3 ,但是我不确定当文件必须在不同机器之间移动时它是否有效。

不过可能值得一试,如果它有效,那会方便很多。

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

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

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