【问题标题】:Configure CI Builds and Releases when VS-team-services workitem status changes在 VS-team-services 工作项状态更改时配置 CI 构建和发布
【发布时间】:2017-10-27 10:39:49
【问题描述】:

我正在尝试了解是否可以在 TFS 工作项状态更改时配置 CI 构建和发布。

举个例子—— 当工作项在看板中从 Dev 状态移动到 QA(使用 TFS 在线)时,CI 构建/发布将启动,并将更改部署到 QA 实例。

【问题讨论】:

    标签: tfs continuous-integration azure-devops tfsbuild


    【解决方案1】:

    不,我会说尝试通过看板列跟踪用户故事当前部署到的环境是一种不好的方法。

    用户故事不是可以单独从一个环境移动到另一个环境的离散项目。用户故事是构成该用户故事实现的更改的集合。构建不是一个用户故事的构建,它是整个代码库在某个时间点的构建。

    您不会触发 CI 构建作为工作管理的一部分,而是触发 CI 以响应对代码的更改,因为这就是 CI:一种将小型、频繁的提交和开发分支之间的集成结合在一起的实践通过自动化构建和测试。

    相反,将您的提交与用户故事/任务联系起来,并使用发布中心定义部署管道。当您的用户故事在环境之间进行推广时,您将能够在用户故事中看到它当前部署到哪个环境。

    【讨论】:

    • 我了解您对跟踪环境和用户故事的看法,并且在某种程度上我同意开发项目。但对于修补程序和快速生产项目,我不知道这是否 100%。不过谢谢你的回答。
    【解决方案2】:

    首先,参考丹尼尔的回答。

    其次,根据您的要求,您可以创建一个 Web 挂钩来跟踪工作项状态并向您的 Web 应用程序发送请求(例如 Web API,需要可从 Internet 访问),然后通过调用 TFS/VSTS @ 进行队列构建987654321@.

    1. 点击设置
    2. 选择服务挂钩
    3. 点击 + 创建新订阅
    4. 选择网络挂钩 > 下一步
    5. 选择工作项更新事件(触发此类事件)
    6. 指定区域、工作项类型和字段(状态)>下一步
    7. 指定 URL(您的网络应用 URL)
    8. 根据需要指定 Http 标头(例如构建定义 ID)

    用于排队构建的简单 C# 代码。 (安装Microsoft Team Foundation Server Extended Client包)

     var u = new Uri("https://[accout].visualstudio.com");
                //VssCredentials c = new VssCredentials(new Microsoft.VisualStudio.Services.Common.WindowsCredential(new NetworkCredential("[alternative username]", "[password]")));
                VssCredentials c = new VssCredentials(new Microsoft.VisualStudio.Services.Common.VssBasicCredential(string.Empty, "[personal access token]"));
                var connection = new VssConnection(u, c);
    var buildServer = connection.GetClient<BuildHttpClient>();
    var build= buildServer.QueueBuildAsync(new Build() { Definition =new DefinitionReference() { Id=[definition id]}, Project= "[team project]" }).Result;
    

    【讨论】:

      猜你喜欢
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      相关资源
      最近更新 更多