【问题标题】:TFS - testing a common module by running builds of projects that depend on itTFS - 通过运行依赖于它的项目的构建来测试一个公共模块
【发布时间】:2021-08-20 05:08:05
【问题描述】:

我正在使用:

Microsoft Visual Studio Team Foundation Server
Version 16.131.28507.4

我有一个在 TFS 中构建并发布到 Artifactory 的 Git maven Java 类库。

我还有几个其他项目依赖于这个类库。

因此,当有人在我的 Git maven Java 类库中针对我的主分支创建 PR 时,我希望在允许合并 PR 之前运行来自其他一些项目的一些冒烟测试作为先决条件。

Repository Settings -> Branches -> Protect Branch - require task to pass before PR merge 中有一个功能。但问题是这项工作在发布到我的共享库到工件之前运行,我无法提取我的新依赖项。

我希望有像 Jenkins 那样的东西,您可以在其中运行另一个项目的构建任务。但在 TFS 中似乎不存在。

我尝试拉出 powershell 并通过脚本执行此操作,但是当您尝试 git 时冻结。

有什么方法可以做我想做的事吗?

【问题讨论】:

    标签: git tfs


    【解决方案1】:

    我希望有像 Jenkins 那样的东西,您可以在其中运行另一个项目的构建任务。但在 TFS 中似乎不存在。

    是的,我们无法在当前 PR 构建验证中运行另一个项目的构建管道:

    但我们可以创建一个构建管道来调用 REST API Builds - Queue

    POST https://{instance}/{collection}/{project}/_apis/build/builds?api-version=4.1
    

    触发另一个项目的构建管道,并使用Builds - Get检查该管道的结果。

    接下来,我们使用logging commands根据触发的管道结果设置当前的构建结果。

    ##vso[task.complete result=Succeeded;]DONE
    

    【讨论】:

    • 几乎成功了。但问题是,没有办法强制“作业 1:构建并发布到反工厂”在“作业 2:使用快照项目工件运行客户端应用程序的冒烟测试”之前运行。所以当 Job 2 运行时,Job 1 还没有完成,所以 Job 2 失败说“library yourlib-2.2-SNAPSHOT is not available”。我将不得不将这些工作合并到一个管道中,我想这没什么大不了的。
    猜你喜欢
    • 1970-01-01
    • 2018-05-07
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    • 2013-03-26
    • 1970-01-01
    相关资源
    最近更新 更多