我有 Bitbucket 存储库。有多个目录。我正在使用 Jenkins 参数化作业来构建每个微服务。有两个字符串参数,第一个用于服务,第二个用于环境。 我想在执行该特定微服务的阶段之前验证我在字符串参数中传递的服务名称。
文件夹结构如下: 服务一 服务二 服务三
如果有人使用错误的服务名称,例如 services_one、service--one、serviceone,那么阶段将不会执行。
目前,我正在传递两个字符串参数。 拳头: 名称:服务 价值:服务一、服务二、服务三
第二: 名称: 环境 价值:开发
节点{
env.SERVICE_NAMES = params.services
env.ENVIRONMENT = params.environment
stage('clone'){
git branch: 'main', credentialsId: 'repo-login', url: 'https://repo-urk/project/mutiple-servcies.git'
}
// Mulitple stages loop for services
"${env.SERVICE_NAMES}".split(",").each { param ->
service_name = "$param".trim()
stage("${service_name}"){
println "Stage executed for: ${service_name}"
}
}
}
您可以像这样使用
fileExists
:
node{
env.SERVICE_NAMES = params.services
env.ENVIRONMENT = params.environment
stage('clone'){
git branch: 'main', credentialsId: 'repo-login', url: 'https://repo-urk/project/mutiple-servcies.git'
}
// Mulitple stages loop for services
"${env.SERVICE_NAMES}".split(",").each { param ->
service_name = "$param".trim()
if(fileExists(service_name)){
stage("${service_name}"){
println "Stage executed for: ${service_name}"
}
}
}
}