当前位置: 首页 > 面试题库 >

Jenkinsfile,用户输入中有变量选择

詹甫
2023-03-14
问题内容

我想将新的Jenkinsfile用于新工作。

我在单独的存储库中有jenkinsfile:

  1. 我在bash中通过git ls-remote从另一个gitlab存储库获得分支。然后将它们存储在变量中:branch1,branch2,brach3…。
  2. 然后我想在用户输入选择中使用这些变量
        script {                
      env.BRANCHDEPLOY = input message: 'User input required',
      ok: 'Deploy!',
      parameters: [choice(name: 'Branch to deploy', choices: '${branch1}\n${branch2}\n${branch3}', description: 'What branch you wont deploy?')]
    }
    echo "${env.BRANCHDEPLOY}"
  1. 然后,我将使用${env.BRANCHDEPLOY}git部署选定的分支。

问题是我无法在用户选择的变量中使用它。

我只需要让用户从另一个gitlab存储库中选择要部署的分支即可。


问题答案:

您只是犯了一个错误,那就是在必须用脚本替换的变量周围加上单引号,因此只需将单引号更改为双引号即可。

"${branch1}\n${branch2}\n${branch3}"

示例:第二阶段打印所选选项

    pipeline {
    agent any

    environment{
        branch1 = 'stack'
        branch2 = 'over'
        branch3 = 'flow'
    }

    stages {
        stage('Stage-One') {
            steps {
                script {                
                    env.BRANCHDEPLOY = input message: 'User input required',
                    ok: 'Deploy!',
                    parameters: [choice(name: 'Branch to deploy', choices: "${branch1}\n${branch2}\n${branch3}", description: 'What branch you wont deploy?')]
                }
            }
        }
        stage('Stage-Two'){
            steps{
                sh "echo ${BRANCHDEPLOY}"
            }
        }
    }


}


 类似资料:
  • 问题内容: 我正在尝试创建一个基本菜单,以检查输入的变量是否与定义的变量匹配。如果定义了变量,则获取已定义变量的数据。 例。 我输入 应该相等 问题答案: 这似乎是您要找的东西: 但是,这可能不是最好的策略,因为错字或恶意用户很容易使您的代码崩溃,系统过载或执行他们喜欢的任何其他讨厌的事情。对于这种特殊情况,更好的方法可能是

  • 可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持包括$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量,以及文件上传信息。 获取PARAM变量 PARAM变量是 TP5推荐的获取请求参数的方式 // 获取当前请求的id变量 $request->param('id'); // 获取当前请求的所有变量(已过

  • 请参考:http://www.kancloud.cn/manual/thinkphp/1721

  • 可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持包括$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量,以及文件上传信息。 获取PARAM变量 PARAM变量是 TP6.0推荐的获取请求参数的方式 // 获取当前请求的id变量 $request->param('id'); // 获取当前请求的所有变量(

  • 可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持包括$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量,以及文件上传信息。 为了方便说明,本篇内容的所有示例代码均使用Facade方式,因此需要首先引入 use think\facade\Request; 如果你使用的是依赖注入,请自行调整代码为动态调用即可

  • 问题内容: 我正在使用python,想知道是否可以向用户询问变量的名称,然后使用该名称创建变量。例如: 我知道可以使用字典来完成,但是我想知道是否可以在不创建其他对象的情况下进行。我正在使用python3。谢谢。 问题答案: 您可以使用通过调用返回的字典: 如果您不希望将其定义为全局变量,则可以使用: