在不同的奴隶上配置詹金斯工作 运行 的最佳方式
Best way to configure jenkins job running on different slaves
我想 运行 在 4 个不同的从站(windows、linux、solaris、Mac)上执行 Jenkins 作业。我不想做 4 份不同的工作,而是想做一份工作。我可以使用 Node 参数在不同的从站上执行。我的工作 运行 是一个脚本,它使用 Jenkins slave 工作区和一些其他脚本。我的脚本在每个奴隶上的不同文件夹中,其他所需的脚本在不同的文件夹中。所以现在我已经为每个奴隶和硬编码的 Jenkins 工作区和其他所需的脚本路径创建了 4 个不同的作业。
有什么方法可以让我将所有路径都放在一些类似于 JSON 的结构中,并根据 slave 来选择这些路径?这样我就只有一份工作。
求推荐,先谢过了!
Jenkins 旨在从版本控制系统(Subversion、Git 等)和 运行 任务中检出文件。与其尝试在不同的从服务器上管理不同的文件,不如将脚本置于某种形式的版本控制中,并让 Jenkins 在其构建过程中检出工作区中的文件。
我的想法是使用例如“执行系统Groovy脚本”来获取从值,然后使用if语句分配正确的路径并创建在环境中可见的参数变量:
import hudson.model.Computer
import hudson.model.StringParameterValue
import hudson.model.ParametersAction
//get slave name
def slaveName = Computer.currentComputer().getNode().name
def path
//choose path
if(slaveName.equals("slave01")){
path = "C:"
}
if(slaveName.equals("slave02")){
path = "/root"
}
if(slaveName.equals("slave03")){
path = "D:"
}
//pass path as env. variable
build.addAction(new ParametersAction(new StringParameterValue('path', path)))
然后你可以在命令中使用变量路径:
echo %path%
或使用 Conditional BuildStep Plugin 为每个操作系统设置可分离的步骤并控制每个步骤何时应该执行
我想 运行 在 4 个不同的从站(windows、linux、solaris、Mac)上执行 Jenkins 作业。我不想做 4 份不同的工作,而是想做一份工作。我可以使用 Node 参数在不同的从站上执行。我的工作 运行 是一个脚本,它使用 Jenkins slave 工作区和一些其他脚本。我的脚本在每个奴隶上的不同文件夹中,其他所需的脚本在不同的文件夹中。所以现在我已经为每个奴隶和硬编码的 Jenkins 工作区和其他所需的脚本路径创建了 4 个不同的作业。
有什么方法可以让我将所有路径都放在一些类似于 JSON 的结构中,并根据 slave 来选择这些路径?这样我就只有一份工作。
求推荐,先谢过了!
Jenkins 旨在从版本控制系统(Subversion、Git 等)和 运行 任务中检出文件。与其尝试在不同的从服务器上管理不同的文件,不如将脚本置于某种形式的版本控制中,并让 Jenkins 在其构建过程中检出工作区中的文件。
我的想法是使用例如“执行系统Groovy脚本”来获取从值,然后使用if语句分配正确的路径并创建在环境中可见的参数变量:
import hudson.model.Computer
import hudson.model.StringParameterValue
import hudson.model.ParametersAction
//get slave name
def slaveName = Computer.currentComputer().getNode().name
def path
//choose path
if(slaveName.equals("slave01")){
path = "C:"
}
if(slaveName.equals("slave02")){
path = "/root"
}
if(slaveName.equals("slave03")){
path = "D:"
}
//pass path as env. variable
build.addAction(new ParametersAction(new StringParameterValue('path', path)))
然后你可以在命令中使用变量路径:
echo %path%
或使用 Conditional BuildStep Plugin 为每个操作系统设置可分离的步骤并控制每个步骤何时应该执行