jenkins - 从外部脚本或作业中断或批准多个管道的睡眠时间
问题描述
我正在使用 Jenkisfile 为 50 个微服务运行 50 个管道,并使用 cron 每两周触发一次所有作业。我在管道中添加了延迟,因此任何用户都可以在检查测试结果后批准作业,并将其用于 Prod 部署。
stage('PROD Deployment Approval') {
// no agent, so executors are not used up when waiting for approvals
agent none
steps {
script {
def deploymentDelay = input id: 'Approve', message: 'Deploy to PROD?', submitter: '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'
}
}
但不是参加每项工作并提供批准。外部脚本或作业有什么办法可以批准所有运行的作业吗?
解决方案
我不相信詹金斯有这样的事情。您可以让他们等待 S3 中的文件更新或参数翻转或其他东西,但这将使用执行程序。
我建议最好的办法是在这个阶段结束这些管道,并有另一个工作来触发所有产品部署管道,一旦测试通过,这些管道就会手动启动。
使用 GitOps 以便开发环境的工作在此处结束,然后当 QA 团队满意时,您将开发存储库合并到产品存储库,并且产品部署管道将自动启动。
或者只是使自动化测试足够好以部署到生产中
推荐阅读
- javascript - jQuery图像动画
- ruby - Ruby:使用 instance_eval(&lambda) 与 instance_eval { lambda.call } 时,lambda 内部的不同值
- python - 无法从 sklearn 模型中获取特征名称,因为输入是 numpy 数组。如何构建我的代码以便提取功能名称?
- c# - 在 C# 中实现单步重试逻辑的好建议?
- arrays - 如何使用 HttpResponse 发送数组?
- android - 如何在 Android 的回收站视图中显示当前时间更新?
- javascript - 网站图片库加载缓慢且重叠
- javascript - React Native 警告:在现有状态转换期间无法更新(例如使用渲染)
- java - 在这个java程序中使用嵌套for循环在java中添加逐渐减少的空格,初学者问题
- django - Django:TestCase的permission_required大小限制?(PermissionRequiredMixin)