Jenkins 工作区目录验证是否存在然后构建该项目

问题描述 投票:0回答:1

我有 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}"  
    }
}

}

jenkins jenkins-pipeline jenkins-plugins jenkins-groovy jenkins-job-dsl
1个回答
0
投票

您可以像这样使用

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}"  
            }
        }
    }
    
}
© www.soinside.com 2019 - 2024. All rights reserved.