5

我有一些影响生产服务器的 Jenkins 工作。最好有一个“你确定要这样做吗?” 当用户运行这些作业之一时的对话框。我还没有找到这个插件。有没有人尝试过这样做?

4

3 回答 3

12

您可以添加“您确定吗?” 构建的参数。当用户点击“立即构建”时,他们将被要求输入参数,可以是“是/否”选项或字符串。然后,您可以通过 shell 或批处理步骤检查此参数,如果未设置为“是”,则“退出 1”。

于 2013-08-09T21:13:43.747 回答
10

我已经在我们的 Jenkins 实例上实现了这个确切的功能。我完成此操作的方法是使用“此构建已参数化”功能添加可用于确定是否应运行命令的构建参数。

在作业配置页面上,选择“This build is parameterized”,然后选择 Add Choice Parameter(您也可以使用任何其他类型的参数,只需根据需要更新下面的 IF 语句即可)。输入名称(无空格或特殊字符)、no 和 yes 选项(顶部为默认)和可选描述。 构建参数截图


现在您可以添加一个“执行 shell”构建步骤来检查 AreYouSure 的值,以查看您是否要执行完整构建。如果该值不是“yes”,则以代码 1 退出,以便 Jenkins 报告构建错误。如果用户没有选择“是”,则检查下面的所有步骤都不会执行。

这是检查变量值的代码:

if [ "${AreYouSure}" = "yes" ]
then
    ##commands to execute
else
    exit 1
fi

Shell 脚本截图

于 2016-06-06T21:37:04.330 回答
3

如果您使用的是管道,这是您的 Jenkinsfile 中的内容(请参阅https://jenkins.io/doc/pipeline/steps/pipeline-input-step/

def confirmDialog = "Release ${chosenApp}:${chosenVersion} now?"
releaseApprover = input message: confirmDialog,
        submitterParameter: 'releaseApprover'
echo "${releaseApprover} is releasing ${chosenApp}:${chosenVersion}"

你会得到“OK”和“Abort”按钮。您也应该将它放在超时调用中,以防止它阻塞节点数天。

于 2018-08-29T15:45:38.190 回答