在Azure DevOps中,当第三方服务返回特定负载(而不是状态代码)时,是否可以运行YAML管道阶段



我想在我们的大型应用程序上运行Veracode安全扫描。问题是扫描大约需要5天,我不想在这段时间里一直固定管道代理。

我目前的解决方案是:

  1. 让build 1上传二进制文件并启动预扫描
  2. 当构建1结束时,让构建2自动运行,并轮询上传的状态。如果预扫描结束,则开始扫描。如果扫描结束,则标记为成功并清除时间表。如果预扫描或扫描仍在运行-通过修改生成定义中的计划,将生成2计划为从当前时间点起每30分钟运行一次,并将生成标记为部分成功

这个方案有效,但我想知道它是否可以简化。

如果构建2是与构建1绑定的Release,该怎么办?

但是,是否可以重复该逻辑,而无需每次都安排一个新的发布,也无需在整个扫描期间(5天(固定构建代理,并使用YAML(即统一管道而不是构建+发布(?

毕竟,一个版本可以多次部署同一阶段——这些都是不同的部署尝试。问题是,我不知道如何在30分钟内请求尝试,而不在接下来的30分钟内阻止代理,这是不可接受的。

因此,这就带来了一个问题——我们是否可以使用YAML管道来启动构建,然后轮询第三方服务,直到它返回我们需要的内容(必须解析和检查有效负载,HTTP状态代码还不够(,以便运行下一阶段?

您正在寻找"门";或";批准和检查";这取决于您使用的是YAML还是经典管道。

您可以添加一个";调用REST API";检查定期查询REST端点,并且只有在满足必要条件时才继续。这是一个";"无服务器";操作--它不会束缚代理。

相关内容

最新更新