`serial:true` 用于 concourse 的目的

The purpose of `serial:true` for concourse

我有一个关于 serial: true 与工作有关的问题。这似乎有点多余,因为 serial_groups 似乎已经控制了多个作业的串行执行。但与此同时,在 plan 内部有像 do 这样的结构,即一系列计划的 运行 个步骤。

文档是这样说的:

serial: boolean Optional. Default false. If set to true, builds will queue up and execute one-by-one, rather than executing in parallel.

在 "Concepts" 部分,大厅似乎将 "build" 定义为

An instance of execution of a job's plan is called a build

在那种情况下,如果您不在 do 中指定构建步骤,它们会同时 运行 吗?

serial: true 意味着 特定作业 一次只会 运行 一个构建,但是将多个作业放在一个 serial_group意味着该组中的所有作业将 运行 相互关联。

例如,如果我将作业job1定义为serial: true,并快速执行job1的四次构建,那么第一个构建将运行,然后构建2 、3 和 4 将在 pending 状态下等待。当构建 1 完成后,构建 2 将启动,构建 3、4 将处于 pending 状态等待,依此类推。

如果在 serial_group 中定义 job1job2job3,并且我同时将它们全部启动,那么其中一个工作,假设 job2,将 运行,其余的将在 pending 状态等待。然后另一个工作,假设 job1 将 运行,job3 将在 pending 状态等待,直到 job2 完成,然后 job3 将 运行.