我正在尝试为示例原型创建CI / CD管道。因此,我已经开始足够简单地测试我的基础结构-我正在使用几乎未改动的ASP.NET Framework Web App(针对4.6.1)。我已经完成的步骤是:
下一步是验证由于测试失败或任何其他原因而导致构建版本损坏的原因未未部署到Azure中。因此,我创建了失败的测试。
这就是我被困住的地方。构建确实会按预期失败,并且会跳过“ App Service Deploy”任务,因为之前的构建任务会失败:
然而,那些损坏的构建仍然仍被部署到Azure和生产中,甚至无需等待管道完成。我正在验证小的视觉更新确实发生了更改。
在完全遍历DevOps中的管道之前(如果找到代理需要更长的时间,甚至在发现之前就开始了),只要在推送中就开始在Azure中开始和结束构建:
(DevOps仍未完成):
我在这里做错了什么?我是否理解管道错误?我是否错过了某个地方的设置步骤?我迷路了。
编辑2.2 进一步阐明了我在Azure的App Service中的部署选项,与Daniel的评论有关:
原来是问题所在。
这是将部署绑定到DevOps时允许我选择的唯一选项。我不允许选择管道,只能选择项目和分支。在我比较过的教程中,设置是相同的(至少在此菜单中是这样),但是构建不是从存储库中触发的,而是希望管道首先到达适当的步骤,这就是为什么我没有认为这是罪魁祸首。我错过了吗?是否还有其他设置,表明它必须寻找管道,而不是直接从分支变更中解雇?
答案 0 :(得分:1)
您在Azure门户中设置的部署仅与源代码管理相关,而与构建定义无关。因此,每次您承诺进行源代码控制时,都会发生两件事,它们彼此完全断开并并行启动,因为它们侦听同一存储库中的更改:
删除#2,您的问题将消失。您可以在管道中设置要更新的App Service,而无需在App Service本身中附加钩子。