Azure DevOps YAML - 我可以在另一个代理上触发作业吗?

问题描述 投票:0回答:1

目前我的 DevOps 管道使用两台服务器并行运行:

服务器 1 上的 jobBuildAll:

  • 构建调试版本
  • 运行所有单元测试

服务器 2 上的 jobBuildAll:

  • 构建发布版本
  • 运行静态代码分析

这是一个大型的 Windows C++ 项目,每台服务器繁忙超过 8 个小时 - 调试构建大约需要 2 小时,单元测试 6 小时,发布构建 4 小时,另外 4 小时用于静态代码分析。

我还必须在专用的第三台服务器上运行功能测试,大约需要 6 小时。

我想做的是:

  • 构建功能测试所需的工件子集后立即发布(1 小时)
  • 触发服务器 3 上的 jobFunctionalTests,以便与服务器 1 上的单元测试以及服务器 2 上的静态分析并行运行这些测试。

据我所知,没有“官方”方法,有没有任何非官方的方法可以实现这一点?

azure-devops azure-pipelines azure-pipelines-yaml
1个回答
0
投票

功能测试所需的工件是可执行文件,以及调试构建期间生成的 DLL。

您的调试构建大约需要 2 小时,但功能测试所需的工件在 1 小时内构建,这个时间更少。

因此,如果您想在构建后立即发布工件并触发功能测试作业,您可以考虑以下选项:

  1. 如果可能,将调试构建任务拆分为两个或多个作业,如果您的工件是在 job1 中生成的,则功能测试作业是

    dependsOn
    job1。一旦 job1 完成后生成工件,功能测试作业就会开始。

  2. 另一种选择是您可以考虑将功能测试放在

    new pipeline
    中。当您使用本地代理时,您可以将工件生成到新管道正在监视的新文件夹中,更改将触发功能测试管道。

© www.soinside.com 2019 - 2024. All rights reserved.