【问题标题】:Allow users to pick Green Jenkins builds to deploy允许用户选择 Green Jenkins 构建进行部署
【发布时间】:2017-03-12 22:39:38
【问题描述】:

我想让测试人员/BAT 用户/Ops 等拥有一个可供选择的构建列表,他们可以从这些构建列表中部署到环境列表中。该列表应该只包含已经通过我们的自动化 Jenkins 流水线的构建,并且环境列表将是一个预定义的列表。他们应该能够从旧版本和新版本中进行选择。部署作业已全部设置完毕。我正在考虑编写一个简单的网页界面,该界面通过 JSON API 连接到 Jenkins,但如果有任何方法可以通过 Jenkins 做到这一点,那就太好了。

【问题讨论】:

  • 我认为最简单的是解析以下json:http://{Jenkins_Master}:8080/job/{JOB_NAME}/api/json?pretty=true&depth=2&tree=builds[number,result ,建筑,网址]

标签: jenkins continuous-integration continuous-deployment devops


【解决方案1】:

你可以这样做:

  1. CI 构建将成功的工件存储在工件存储库中(即:Artifactory)
  2. Build 有一个名为“BuildToDeploy”或类似的参数。该构建参数是使用 Dynamic Parameter Plugin 创建的,因此它会填充来自 Artifactory 的构建列表。
  3. 测试人员从绿色工件列表中选择一个构建。

为了实现步骤 2 作为参数的“默认值脚本”,您添加一些从工件存储库获取工件列表的 Groovy 代码。在 Artifactory 中,它类似于 jfrog rt list CIBuildArtifacts

【讨论】:

    【解决方案2】:

    有趣的是,使用 Jenkins 声明式管道,您可以通过一种非常简单的 OOTB 方式来实现这一点。虽然你必须稍微扭曲一下这个想法。

    一般而言,对于您希望能够推广的任何管道,您可以使用input,提交者有一个额外的阶段

    允许提交此输入的用户或外部组名的可选逗号分隔列表。默认允许任何用户。

    parameters

    pipeline {
        agent any
        stages {
            stage('Example') {
                input {
                    message "Should we continue?"
                    ok "Yes, we should."
                    submitter "alice,bob"
                    parameters {
                        choice(name: 'DEPLOYMENT_ENV', choices: ['one', 'two', 'three'], description: 'where to deploy?')
                    }
                }
                steps {
                    echo "Hello, ${PERSON}, nice to meet you."
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-10-17
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 2015-12-30
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多