请解释jenkins lockable-resources插件的实际使用

f5emj3cl  于 2023-08-03  发布在  Jenkins
关注(0)|答案(2)|浏览(140)

我无法理解插件Lockable Resources的目的。
在文档中,它被写为锁定资源“,如打印机,电话(什么!?)、计算机等”
我不知道这到底是什么锁,从谁那里?请举例说明。

wfypjpf4

wfypjpf41#

它可以防止两个作业试图同时使用同一资源。“资源”可以是你想要的任何东西。它是由一个名字来识别的。
考虑一个人为的例子:你有一个Jenkins的工作,打印一些信封,然后一些信件。如果同时运行另一个作业,则信封和信件将被混淆。为了防止其他作业在您的作业运行时使用该打印机,可以让两个作业都使用该打印机的资源锁定。
或者你使用的是带有分色功能的笔式绘图仪,这样每一种原色都是一个单独的步骤。您的作业应在所有步骤中锁定绘图仪,以便其他作业无法在顶部开始打印其图像。
您已经可以阻止Jenkins同时运行同一作业的多个示例;这是为了防止两个不同的作业同时使用相同的资源。

fafcakar

fafcakar2#

冒着重新启动一场早已死亡的讨论的风险...我看不出有什么实际的例子,所以让我为后代补充一下......
场景:

  • 我想在特定区域的AWS中部署和测试我的服务
  • 可锁定的资源,让我在测试期间独占使用该区域。使用相同锁命名的任何其他运行或作业都将排队等候。
  • 由于在全局管理中没有预先配置确切的资源名称,因此它被动态创建为“临时”,并且在不使用时自动删除

假设我的管道有运行时参数来选择我正在使用的环境和区域,我可以构建管道的部署和测试阶段,如下所示:

stage ("Deploy and test") {
     options {
         lock "my-project-aws-${params.ENV}-${params.REGION}"
     }
    
     stages {
          stage("Deploy") {...}
          stage("Test") {...}
     }
}

字符串

相关问题