在使用Jenkins的SCM流水线时,可以配合git parameter插件,来指定分支打包。
创建参数选择git分支
这里要选择Pipeline script from SCM 配置远端git 这里要注意不能直接用$Branch不知道是bug还是啥原因获取不出来需要做些特殊处理
在前面加入refs/remotes/如下图
接着设置流水线脚本名称 可以自定义也可以用默认的 这个脚本必须要在git工程的根目录下且不能有扩展名
流水线中可能会执行多个任务,项目可能会依赖一些参数设置,此时在执行项目时就需要传递参数。
对于String类型的传递,可以使用如下方式
build job: "build" , parameters:[ string(name:"Branch", value: "${params.Branch}")]
对于Boolean类型的参数传递,只能使用如下方式
[$class: "BooleanParameterValue", name: "BuildFtp", value: "${params.BuildFtp}"]
// 或者
[$class: "BooleanParameterValue", name: "BuildFtp", value: true]
如果Boolean和String类型都需要传递,则只能使用以下方式
build job: "build" , parameters:[
[$class: "StringParameterValue", name: "Branch", value: "${params.Branch}"],
[$class: "StringParameterValue", name: "version", value: "${params.version}"],
[$class: "BooleanParameterValue", name: "BuildFtp", value: true]
]
后面就是编写脚本类容测试
package groovy
def languageList = ["CN", "TW", "EN", "JP", "KO", "RU", "FR", "DE"]
pipeline {
agent any
stages {
stage("BuildTest") {
steps {
script{
stage("BuildTest"){
build job: "build" , parameters:[ // 启动build工程并且传入参数
[$class: "StringParameterValue", name: "Branch", value: "${params.Branch}"],
[$class: "StringParameterValue", name: "version", value: "${params.version}"],
[$class: "StringParameterValue", name: "BuildOption", value: "${params.BuildOption}"],
[$class: "StringParameterValue", name: "ApkName", value: "${params.ApkName}"],
[$class: "StringParameterValue", name: "Language", value: i],
[$class: "StringParameterValue", name: "FtpIpAddress", value: "${params.FtpIpAddress}"],
[$class: "BooleanParameterValue", name: "BuildFtp", value: true]
]
}
for ( i in languageList){
stage("Build_For_Test"){
echo 'eee' + i + "$params.Branch" // 循环log测试 或者也可以把上面放入到循环里面 根据配置打不同包
}
}
}
}
}
}
}