【问题标题】:Queue CodeBuild tasks排队 CodeBuild 任务
【发布时间】:2021-02-17 08:12:47
【问题描述】:

有没有办法让 CodeBuild 项目一次执行一个构建任务(最大并发 = 1)?

我知道 CodeBuild 的卖点之一是您可以同时运行构建,我喜欢这个功能。

但是,对于这个特定的项目,我需要确保一次只执行该项目的一个 CodeBuild 构建任务。如果在前一个请求仍在运行时有传入的“startBuild”请求,我希望它排队并等到前一个构建任务完成。

作为项目的附加信息,该项目在我们的各种 API(无服务器 API 和 EC2 上的旧 API)上运行集成测试,同时运行这些测试可能会由于设置和拆卸过程而导致测试失败。

【问题讨论】:

    标签: amazon-web-services aws-codebuild


    【解决方案1】:

    我来自 AWS CodeBuild 团队。感谢您的反馈意见。此时不支持您请求的功能。我们会将反馈传递给我们的产品管理团队,以便他们考虑将其添加到我们未来的路线图中。

    但是,您也许可以通过使用 CodeBuild 的构建通知功能在您的最后实现一些东西。在较高级别上,您可以收听 CodeBuild 发送的 CloudWatch 事件,以了解构建何时完成,然后从您最终维护的队列中“发布”一个新构建。

    【讨论】:

    • 这仍然缺少并且非常需要,有什么进展吗?
    【解决方案2】:

    更新(2021-02-17)

    AWS CodeBuild 刚刚添加了定义每个项目的最大并发构建数的功能。

    参考:https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-console.html#create-project-console-project-config

    【讨论】:

    • 这并不能解决 OP 问题。当然,它会限制同时运行的构建数量,但是在构建运行时,您不能将另一个构建排队。