当另一个配置完成时,您可以使用Build Completed Triggers来启动一个配置。但是,目前没有任何方法可以启动另一个配置,并在一个配置启动时等待它完成。计划在将来使用依赖项功能使之成为可能。
我建议您为构建过程的每个部分使用一个带有阶段的单一配置。然后,您可以使用阶段跳过条件、阶段提升条件或If 和 Else操作来根据变量和表达式的值选择运行哪些阶段或操作。
我假设 DailyBuild 将由Time Trigger 启动,而 Patch 和 Release 构建将手动启动或由Repository Trigger 启动。也许 Patch 构建是由特定的存储库分支或标签触发的,而 Release 构建是由另一个触发的。配置阶段的条件可以测试分支或标签的值,例如 $Source.RepoName.Branch$ Equals 'Release' 或 $Source.RepoName.LatestTagName$ StartsWith 'Patch',或者测试变量的值。该变量可以在运行构建时在“队列选项”对话框中手动设置,也可以由“编辑触发器”对话框的“变量”选项卡中指定的触发器设置。
在您的发布配置为“Config 1 + Config 2 + DailyBuild Config”的场景中,我会将其更改为“Stage 1 + Stage 2 + DailyBuild Stage”。第 1 阶段和第 2 阶段将分别使用 Skip Condition 检查由 DailyBuild 触发器设置的变量,例如 %TriggeredBy% Equals 'DailyBuild',或 $Build.StartedBy$ 表达式的值,例如 $Build.StartedBy$ Equals 'DailyBuildTrigger'。这意味着第 1 阶段和第 2 阶段只有在 DailyBuildTrigger 未启动构建时才会运行。
或者,您可以克隆配置,并在每个构建过程中对其进行编辑,但我不建议这样做,因为更改和维护更加困难。