【发布时间】:2021-04-07 06:18:03
【问题描述】:
我们正在进行基于主干的开发。所以我们只有一个主分支。
我们有一个包含以下阶段的 Jenkins 管道:
- 构建 -> 测试 -> 部署到测试
现在我想添加一个将部署到生产环境的手动阶段。但我不想让舞台等待并阻塞管道。只是一个可选的手动阶段,可由用户触发并将构建部署到生产环境。
我怎样才能做到这一点?
【问题讨论】:
我们正在进行基于主干的开发。所以我们只有一个主分支。
我们有一个包含以下阶段的 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...'
}
}
}
}
输出:
YES时,阶段Deploy to Production将运行NO时,阶段Deploy to Production将不会运行【讨论】: