使用 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...'
}
}
}
}
输出:
- 当用户 select
YES
,阶段 Deploy to Production
将 运行
- 当用户select
NO
,阶段Deploy to Production
不会运行
我们正在进行主干开发。所以我们只有一个主分支。
我们有一个包含以下阶段的 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...'
}
}
}
}
输出:
- 当用户 select
YES
,阶段Deploy to Production
将 运行
- 当用户select
NO
,阶段Deploy to Production
不会运行