Phabricator 中构建的序列化和并行化
Sequentialization and parallelization of builds in Phabricator
我有几个(源)存储库。每当将提交推送到这些存储库之一时,必须触发一个任务,该任务构建源并将结果推送到另一个(目标)存储库。
源存储库托管在 Phabricator 中。目标存储库单独托管。 Jenkins 可以访问所有存储库。
我所做的是:
- Jenkins 中的一个项目,它通过参数化脚本执行构建作业
- Harbormaster 中的构建计划,其中
Make HTTP Request
构建步骤调用 Jenkins
- 只要将提交推送到源存储库之一,就会触发 Harbormaster 构建计划的先驱规则
如何确保一个源存储库的所有推送提交都按正确的顺序构建?以及如何在多个源存储库之间并行构建?
我想避免的是在 Jenkins and/or Harbormaster 上为每个源存储库进行(大量)设置。
简短的回答是Herald/Harbormaster确保处理顺序始终等于存储库中提交的顺序。为防止提交的非顺序处理,您需要使用构建步骤 Wait for Previous Commits to Build
作为构建步骤的依赖项。
要在多个存储库之间并行处理,除了多个构建计划之外没有其他可能性,其中每个构建计划负责一组特定的(分离的)存储库。但是他们都可以在 Jenkins 中使用一份工作,因为 Phabricator 将是唯一负责流程订单的人。
我有几个(源)存储库。每当将提交推送到这些存储库之一时,必须触发一个任务,该任务构建源并将结果推送到另一个(目标)存储库。
源存储库托管在 Phabricator 中。目标存储库单独托管。 Jenkins 可以访问所有存储库。
我所做的是:
- Jenkins 中的一个项目,它通过参数化脚本执行构建作业
- Harbormaster 中的构建计划,其中
Make HTTP Request
构建步骤调用 Jenkins - 只要将提交推送到源存储库之一,就会触发 Harbormaster 构建计划的先驱规则
如何确保一个源存储库的所有推送提交都按正确的顺序构建?以及如何在多个源存储库之间并行构建?
我想避免的是在 Jenkins and/or Harbormaster 上为每个源存储库进行(大量)设置。
简短的回答是Herald/Harbormaster确保处理顺序始终等于存储库中提交的顺序。为防止提交的非顺序处理,您需要使用构建步骤 Wait for Previous Commits to Build
作为构建步骤的依赖项。
要在多个存储库之间并行处理,除了多个构建计划之外没有其他可能性,其中每个构建计划负责一组特定的(分离的)存储库。但是他们都可以在 Jenkins 中使用一份工作,因为 Phabricator 将是唯一负责流程订单的人。