当有一个管理不同任务的Jenkinsfile,里面不同的stage可能需要在不同的构建机节点上构建;此时我们又想通过手动选择不同项目版本,自动跳转到对应的构建stage去;如在参数parameters关键字里定义了choice:
choice(name: 'Version', choices: ['windows1','windows2','linux1','linux2n'], description: '选择对应的项目版本')
此时,需求是windows上的任务在windows系统的构建机上构建,linux任务在linux构建机上构建;那可以单独拿出一个stage来管理选择:
stage('choose version'){
steps{
script{
if(params.Version == 'windows1'){
ServerConfig = "******"
serverDeployNode = "******"
ServerDeployIp = "******"
}
if(params.Version == 'windows2'){
ServerConfig = "******"
serverDeployNode = "******"
ServerDeployIp = "******"
}
if(params.Version == 'linux1'){
ServerConfig = "******"
serverDeployNode = "******"
ServerDeployIp = "******"
}
if(params.Version == 'linux2'){
ServerConfig = "******"
serverDeployNode = "******"
ServerDeployIp = "******"
}
}
}
}
在Jenkins中,判断构建机是否为linux环境可以用“isUnix()”函数判断:
if(isUnix()){}
这样,会在Jenkins构建任务时,触发手动选择对应构建机,从而实现手动切换。