VSTS - 在单个 git 提交中构建订单
VSTS - Build Order within a single git commit
我想知道是否可以在 vsts 中的单个提交中设置构建 order/priority。
我遇到的场景是这样的:
我有一个包含多个项目的解决方案(一个存储库)。
- 出版商
- 订户 1
- 订户 2
- 消息
其中每一个(期望消息)都有一个构建定义,其中包含针对每个相应项目的路径过滤器(持续集成),然后发布(持续部署触发器)并在那里初始化。
项目不依赖于彼此,期望用于通信的消息。
因此,如果我对 Publisher 项目和任何订阅者项目进行更改,然后提交,我希望始终首先构建和发布 Publisher 项目。
因为发布者现在需要订阅者想要订阅的新消息。
这样的事情可能吗?
VSTS 现在无法指定由相同代码触发的 CI 构建的顺序。
我发了一条用户心声Specify queue builds order if there has multiple CI builds are triggered by the same code,大家可以投票关注
目前,您可以使用以下解决方法:
为所有项目构建,即使只有特定项目有更改(发布者或订阅者)
如果您可以构建所有项目,即使只有一个项目发生了变化,您可以定义一个构建定义来构建其中的所有项目。然后使用此构建作为 CI 构建来替换多个 CI 构建。
为所有相关任务设置自定义条件
您仍然需要在一个构建定义中定义所有任务,并添加两个变量publisher
和subscriber
,默认值为0
。
并在构建开始时添加 PowerShell 任务以检查哪些项目已更改。如果更改 Publisher 项目,请将 publisher
变量设置为值 1
。如果更改了订户项目,请将 subscriber
变量设置为值 1
。
然后对相关项目使用custom conditions
。比如在build Publisher项目任务中,使用自定义条件:and(succeeded(), eq(variables['publisher'], '1'))
。
那么任务只在publisher
变量为1
时运行。自定义条件的使用方法也可以参考
一种解决方法是将您的优先构建设置为由 持续集成 触发,而其他构建则在 滚动构建 模式下触发。
滚动构建将在开始前等待 CI
我想知道是否可以在 vsts 中的单个提交中设置构建 order/priority。
我遇到的场景是这样的:
我有一个包含多个项目的解决方案(一个存储库)。
- 出版商
- 订户 1
- 订户 2
- 消息
其中每一个(期望消息)都有一个构建定义,其中包含针对每个相应项目的路径过滤器(持续集成),然后发布(持续部署触发器)并在那里初始化。
项目不依赖于彼此,期望用于通信的消息。
因此,如果我对 Publisher 项目和任何订阅者项目进行更改,然后提交,我希望始终首先构建和发布 Publisher 项目。
因为发布者现在需要订阅者想要订阅的新消息。
这样的事情可能吗?
VSTS 现在无法指定由相同代码触发的 CI 构建的顺序。
我发了一条用户心声Specify queue builds order if there has multiple CI builds are triggered by the same code,大家可以投票关注
目前,您可以使用以下解决方法:
为所有项目构建,即使只有特定项目有更改(发布者或订阅者)
如果您可以构建所有项目,即使只有一个项目发生了变化,您可以定义一个构建定义来构建其中的所有项目。然后使用此构建作为 CI 构建来替换多个 CI 构建。
为所有相关任务设置自定义条件
您仍然需要在一个构建定义中定义所有任务,并添加两个变量
publisher
和subscriber
,默认值为0
。并在构建开始时添加 PowerShell 任务以检查哪些项目已更改。如果更改 Publisher 项目,请将
publisher
变量设置为值1
。如果更改了订户项目,请将subscriber
变量设置为值1
。然后对相关项目使用c
ustom conditions
。比如在build Publisher项目任务中,使用自定义条件:and(succeeded(), eq(variables['publisher'], '1'))
。那么任务只在
publisher
变量为1
时运行。自定义条件的使用方法也可以参考
一种解决方法是将您的优先构建设置为由 持续集成 触发,而其他构建则在 滚动构建 模式下触发。 滚动构建将在开始前等待 CI