【问题标题】:Continuous Delivery with Jenkins: Deploy to production as manual step使用 Jenkins 持续交付:作为手动步骤部署到生产环境
【发布时间】:2021-04-07 06:18:03
【问题描述】:

我们正在进行基于主干的开发。所以我们只有一个主分支。

我们有一个包含以下阶段的 Jenkins 管道:

  • 构建 -> 测试 -> 部署到测试

现在我想添加一个将部署到生产环境的手动阶段。但我不想让舞台等待并阻塞管道。只是一个可选的手动阶段,可由用户触发并将构建部署到生产环境。

我怎样才能做到这一点?

【问题讨论】:

    标签: jenkins jenkins-pipeline


    【解决方案1】:

    您可以使用Pipeline:Input Step 手动部署到生产环境。

    您可以在此处找到相同的示例:

    How can I approve a deployment and add an optional delay for the deployment


    已编辑答案


    使用选项This project is parameterised 创建一个选择参数,如下所示

    带有运行或不运行阶段条件的示例管道代码:

    pipeline {
        agent any
    
        stages {
            stage('Hello') {
                steps {
                    echo 'Hello World'
                }
            }
            
            stage('Deploy to Production') {
                when {
                    expression { params.DEPLOY_TO_PRODUCTION == 'Yes' }
                }
                steps {
                    echo 'Deploying to Production...'
                }
            }
        }
    }
    

    输出:

    1. 当用户选择YES时,阶段Deploy to Production将运行

    1. 当用户选择NO时,阶段Deploy to Production将不会运行

    【讨论】:

    • 这或多或少是我已经尝试过的。问题是管道会卡在 Approval 阶段,如果有人中止它,构建将被标记为中止。
    • 而且只有在有人批准时才会调用发布操作
    • 您可以有一个选择参数 (YES/NO) 来询问用户输入,并在参数上设置一个条件是否执行阶段,即是否部署到生产环境。
    • 这在声明式管道中会是什么样子?
    • 我已经根据上面的评论编辑了答案。
    猜你喜欢
    • 2012-06-22
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 2012-08-03
    • 1970-01-01
    • 2015-04-20
    相关资源
    最近更新 更多