首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将变量从Jenkins管道作业脚本传播到加载的jenkinsfile脚本?

是否可以将变量从Jenkins管道作业脚本传播到加载的jenkinsfile脚本?
EN

Stack Overflow用户
提问于 2018-11-10 16:44:41
回答 1查看 548关注 0票数 0

我想知道是否有可能将jenkins管道作业中的变量定义传递给像这样的加载脚本。加载的脚本

管道作业

代码语言:javascript
复制
node {

     // Some declaration and code

    stage('Prepare deploy') {
        // Create a talbe for the servers lists
        def servers = [:]

        // For each server know, if deployment is enabled
        // deploy resources
        params.each { srv, value ->
        if ("$value" == "true"){
            // add the current current to the enabled servers
            servers["Server ${srv}"] = {

                // Define specific variable
                String SERVER=props."SRV_${srv}"
                String CONF=env.DEPLOY_HOME + "/${srv}"

               // Install server - the SERVER and CONF variable need to be propagate to the others scripts
               load env.JENKINSFILES_DIRECTORY + "/server-configuration"
               load env.JENKINSFILES_DIRECTORY + "/server-deploiement"
               load env.JENKINSFILES_DIRECTORY + "/server-postconfig"
               load env.JENKINSFILES_DIRECTORY + "/server-start"
            }
        }
    }
    parallel servers
    }

}

服务器配置文件

代码语言:javascript
复制
#!/usr/bin/env groovy​
node{
     // Some declaration
     stage('configure serveur'){
          // The variable SERVER and CONF must be visible here
          // is it possible ?
          sh "ssh -X " + env.USER +"@${SERVER} 'sh echo \"${CONF}\"'"
     }
}

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-10 18:08:06

withEnv是你要找的东西

代码语言:javascript
复制
node {

 // Some declaration and code

stage('Prepare deploy') {
    // Create a talbe for the servers lists
    def servers = [:]

    // For each server know, if deployment is enabled
    // deploy resources
    params.each { srv, value ->
    if ("$value" == "true"){
        // add the current current to the enabled servers
        servers["Server ${srv}"] = {

           // Install server - the SERVER and CONF variable need to be propagate to the others scripts
withEnv(["SERVER=props.SRV_${srv}","CONF=env.DEPLOY_HOME + ${srv}"]){
           load env.JENKINSFILES_DIRECTORY + "/server-configuration"
           load env.JENKINSFILES_DIRECTORY + "/server-deploiement"
           load env.JENKINSFILES_DIRECTORY + "/server-postconfig"
           load env.JENKINSFILES_DIRECTORY + "/server-start"
        }
}
    }
}
parallel servers
}
}

服务器-配置

代码语言:javascript
复制
#!/usr/bin/env groovy​
node{
 // Some declaration
 stage('configure serveur'){
      // The variable SERVER and CONF must be visible here
      // is it possible ?
      sh "ssh -X " + env.USER +"@${env.SERVER} 'sh echo \"${env.CONF}\"'"
 }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53241133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档