我有 3 个应用程序需要构建。一个应用程序仅适用于 Linux,一个仅适用于 Windows,一个是跨平台的。目前,我在相关构建系统上手动克隆存储库。我想自动完成此过程。
(最佳)解决方案应该是我有一个 2 节点的 Jenkins 集群,一个 Linux 节点和一个 Windows 节点。我在一个节点(无论哪个节点)上设置了一个构建作业,并定义了我的构建目标(跨平台,仅限 Linux,仅限 Windows)。作业定义在 Jenkins 集群内共享,无需跨节点传输。
如何设置 2 节点 Jenkins “跨平台” 集群?如何定义构建目标(跨、Linux、Windows)是否有具体的工作定义?
答案1
将 Windows 和 Linux 执行器添加到 Jenkins 时,请确保为它们提供适当的linux
标签windows
。
然后,在你的Jenkinsfile中,使用多个agent
来定义几个不同的执行环境。
例如:
pipeline {
agent none
stages {
stage('Build on Linux') {
agent {
label 'linux'
}
steps {
sh 'my-build-command'
}
}
stage('Build on Windows') {
agent {
label 'windows'
}
steps {
bat 'myBuildCommand'
}
}
}
}
以下是官方文档中的一个示例,介绍如何agent
在 Linux 和 Windows 等不同平台上运行不同的步骤。
这是用于声明式管道。如果您正在使用脚本式管道,请使用node()
。