在 VSTS CI 中添加自动 git 合并步骤

Add automatic git merge step in VSTS CI

我想在测试通过后将我的 dmz 分支合并到 master 分支。我找不到合并步骤。

如 DMZ 流程所述,您应该使用 拉取请求 dmz 分支合并到 master。为了合并和构建可以自动执行,您可以使用 web hooks.

In order to preserve the pristine and reliable nature of master, we're going to impose some constraints. No one can ever put code directly into master. Everyone has to work on feature branches, and those feature branches can only be brought into master by way of the pull request. Pull requests will be built automatically and their build status checked before merge into master, thus ensuring that code coming into master has always a) passed automated checks like compilation and testing, and b) passed code review. Pull requests should be used for everything, from tiny whitespace changes to sweeping refactorings. A healthy team opens many, many pull requests every day.

流程应该是:创建一个 pull request 将 dmz 合并到 master -> 自动构建 dmz 分支(由 web hook 触发) -> 如果构建成功(通过另一个网络挂钩检测)->将 dmz 合并到 master 并在 master 分支上构建队列。

先决条件:

  • 两个 Web 挂钩用于检测 dmz 分支上的拉取请求创建和构建成功。
  • 两个构建定义分别构建 dmzmaster 分支。
  • 根据您的请求开发的网站,在 dmz 构建成功后接收消息,然后将 dmz 合并到 master 并在 master 分支上排队另一个构建。

用于检测拉取请求的 Web 挂钩已创建: 在 VSTS 项目网页中 -> 服务挂钩 -> 创建订阅 -> Web 挂钩 -> 下一步 -> select 为触发事件创建的拉取请求合并提交 -> select 你的回购 -> select master 作为目标分支 -> 下一步 -> URL 用于你的网站 -> 完成。

Web 钩子检测构建成功dmz 分支上 -> 创建另一个 Web 钩子 -> select 构建完成触发此事件 -> select 构建 dmz 分支的构建定义 -> select 作为构建状态成功 -> 下一步 -> 使用您的网站 URL 接收消息。

网站功能应包括:

如果不想使用Pull Request,可以在构建时调用git命令合并并推送到maser分支。

  1. 在下面添加命令行任务来测试任务
  2. 工具:git;参数:push origin HEAD:master;工作文件夹:$(build.sourcesdirectory)