Visual Studio 在线 (VSO) 分支策略 - 带自动构建的拉取请求
Visual Studio Online (VSO) Branch Policies - Pull Request w/ Auto Build
我正在尝试完成一个完整的 CI 解决方案,它将从 PR 开始,-> 构建 ->,构建将 nuget 包推送到 octopus -> octopus 识别新包并部署。我想澄清一下 Pull Request 策略如何用于自动构建 Pull Request。我们选择了 “当团队成员在“开发”分支中创建或更新拉取请求时,将此构建排队:MyCoolBuilDefinition”。
我注意到一旦创建了 PR,构建就会立即触发。它创建了一个临时 git 分支“refs/pull/123/merge”。我假设它在这个分支上创建了一个预合并来进行构建。这是我们可以部署和测试的构建吗?或者这只是为了满足构建策略?
我担心如果创建了 3 个拉取请求....如果 PR1 和 PR2 已经构建但未标记为已完成。 PR3 的构建会包含来自 PR1 和 PR2 的代码吗?因为代码只有在 PR 被标记为已完成时才合并到“dev”分支中……我认为不会。预合并应该从最新的“dev”分支中提取来进行预合并。并且,如果 P1 和 p2 没有被标记为 Completed,那么 P3 将没有 P1 和 P2 代码。
构建只是为了满足构建策略,你的担心是对的。预合并不包括其他未完成的拉取请求中的更改。它只是确保当前的拉取请求可以成功构建。所以你最好为 "dev" 分支创建两个构建定义。一种定义只是构建代码以满足拉取请求,另一种定义启用持续集成并构建代码并推送 nuget 包。
我正在尝试完成一个完整的 CI 解决方案,它将从 PR 开始,-> 构建 ->,构建将 nuget 包推送到 octopus -> octopus 识别新包并部署。我想澄清一下 Pull Request 策略如何用于自动构建 Pull Request。我们选择了 “当团队成员在“开发”分支中创建或更新拉取请求时,将此构建排队:MyCoolBuilDefinition”。
我注意到一旦创建了 PR,构建就会立即触发。它创建了一个临时 git 分支“refs/pull/123/merge”。我假设它在这个分支上创建了一个预合并来进行构建。这是我们可以部署和测试的构建吗?或者这只是为了满足构建策略?
我担心如果创建了 3 个拉取请求....如果 PR1 和 PR2 已经构建但未标记为已完成。 PR3 的构建会包含来自 PR1 和 PR2 的代码吗?因为代码只有在 PR 被标记为已完成时才合并到“dev”分支中……我认为不会。预合并应该从最新的“dev”分支中提取来进行预合并。并且,如果 P1 和 p2 没有被标记为 Completed,那么 P3 将没有 P1 和 P2 代码。
构建只是为了满足构建策略,你的担心是对的。预合并不包括其他未完成的拉取请求中的更改。它只是确保当前的拉取请求可以成功构建。所以你最好为 "dev" 分支创建两个构建定义。一种定义只是构建代码以满足拉取请求,另一种定义启用持续集成并构建代码并推送 nuget 包。