使用 Jenkins 持续交付:以手动步骤部署到生产环境

Continuous Delivery with Jenkins: Deploy to production as manual step

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

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

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

我怎样才能做到这一点?

您可以使用 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. 当用户 select YES,阶段 Deploy to Production 将 运行

  1. 当用户select NO,阶段Deploy to Production不会运行