在詹金斯工作流程中改变奴隶
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
步骤在节点之间发送任何文件。
我正在配置 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
步骤在节点之间发送任何文件。