需要插件来控制谁可以批准 Jenkins 管道中的阶段
Need plugin to control who can approve a stage in Jenkins Pipeline
我需要一个插件,团队负责人可以批准管道是否可以进入 Jenkins 的下一阶段。我计划使用多级管道(声明式),所以在开发阶段之后我需要一个人批准(只有他可以批准)并且开发人员可以 运行 完成这项工作。有没有这样的插件可以让只有一个人可以批准这样的请求?
尝试过基于角色的访问插件,但这里没有办法控制可以进行阶段批准的人员隔离
@sidharth vijayakumar,我想你可以使用 'Pipeline: Input Step' 插件。
据我了解,此插件会暂停管道执行并允许用户交互和控制构建流程。
可以通过构建控制台日志底部的 link 或构建侧边栏中的 link 访问参数输入屏幕。
留言
此参数给出将显示给人类的提示:
Ready to go?
Proceed or Abort
如果单击“继续”,构建将继续下一步,如果单击“中止”,构建将中止。
您的管道脚本应该类似于以下代码段
// Start Agent
node(your node) {
stage('Checkout') {
// scm checkout
}
stage('Build') {
//build steps
}
stage('Tests') {
//test steps
}
// Input Step
{
input message: 'Do you want to approve if flow can proceeded to next stage?', ok: 'Yes'
}
stage('Deploy') {
...
}
}
参考 link : https://www.jenkins.io/doc/pipeline/steps/pipeline-input-step/
为了解决基于角色的批准问题,我将输入块与提交者一起使用。这意味着列为提交者的人将只能给予阶段批准。
stage('Approval') {
agent none
steps {
script {
def deploymentDelay = input id: 'Deploy', message: 'Deploy to production?', submitter: 'rkivisto,admin', parameters: [choice(choices: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24'], description: 'Hours to delay deployment?', name: 'deploymentDelay')]
sleep time: deploymentDelay.toInteger(), unit: 'HOURS'
}
}
}
请注意,提交者必须是有效用户。使用基于角色的访问插件并创建具有相关访问权限的用户。
我需要一个插件,团队负责人可以批准管道是否可以进入 Jenkins 的下一阶段。我计划使用多级管道(声明式),所以在开发阶段之后我需要一个人批准(只有他可以批准)并且开发人员可以 运行 完成这项工作。有没有这样的插件可以让只有一个人可以批准这样的请求?
尝试过基于角色的访问插件,但这里没有办法控制可以进行阶段批准的人员隔离
@sidharth vijayakumar,我想你可以使用 'Pipeline: Input Step' 插件。
据我了解,此插件会暂停管道执行并允许用户交互和控制构建流程。
可以通过构建控制台日志底部的 link 或构建侧边栏中的 link 访问参数输入屏幕。
留言 此参数给出将显示给人类的提示:
Ready to go?
Proceed or Abort
如果单击“继续”,构建将继续下一步,如果单击“中止”,构建将中止。
您的管道脚本应该类似于以下代码段
// Start Agent
node(your node) {
stage('Checkout') {
// scm checkout
}
stage('Build') {
//build steps
}
stage('Tests') {
//test steps
}
// Input Step
{
input message: 'Do you want to approve if flow can proceeded to next stage?', ok: 'Yes'
}
stage('Deploy') {
...
}
}
参考 link : https://www.jenkins.io/doc/pipeline/steps/pipeline-input-step/
为了解决基于角色的批准问题,我将输入块与提交者一起使用。这意味着列为提交者的人将只能给予阶段批准。
stage('Approval') {
agent none
steps {
script {
def deploymentDelay = input id: 'Deploy', message: 'Deploy to production?', submitter: 'rkivisto,admin', parameters: [choice(choices: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24'], description: 'Hours to delay deployment?', name: 'deploymentDelay')]
sleep time: deploymentDelay.toInteger(), unit: 'HOURS'
}
}
}
请注意,提交者必须是有效用户。使用基于角色的访问插件并创建具有相关访问权限的用户。