azure-devops - 在 Azure DevOps 中脚本失败后继续构建
问题描述
在我的 Azure DevOps 构建任务中,我运行了赛普拉斯测试。如果测试失败,则取消构建。但是我想在赛普拉斯发布测试结果后运行另一个任务。
我已经在我的 pipeline.yml 文件中尝试了这个任务:
- task: PowerShell@2
inputs:
targetType: "inline"
script: "yarn test:cypress"
errorActionPreference: "continue"
displayName: "start server and run cypress"
但这似乎没有任何效果。
我试过添加-ErrorAction 'Continue'
到脚本”
"start": "npm-run-all -s build:shared-web run:shell",
"cy:run": "cypress run -ErrorAction 'Continue'",
"test:cypress": "start-server-and-test start http://localhost:3000 cy:run"
但这失败了:
错误:未知选项:-E
看起来赛普拉斯将ErrorAction
视为赛普拉斯参数。
那么,如果任务失败,继续构建的正确方法是什么?
解决方案
您可以将以下内容添加到任务中:
continueOnError: true
现在,即使测试失败,构建也会继续运行。
如果您想在测试失败的情况下使构建失败,但您只想运行一个任务来发布结果,您可以将其添加到发布测试任务中:
condition: always()
现在发布任务将始终运行,即使测试失败并且构建取消/失败。
推荐阅读
- php - 使用pdf js打开时加载错误的文档
- javascript - 我正在使用 getElement 但它在我的代码中不起作用,为什么?
- java - JavaFX 错误:不知道如何检测 os 系列“primarystages”
- ios - 如何从 swift 数据中获取字节
- python-3.x - 如何找到一个值的乘积 * 它在列表中出现的唯一次数?
- python - 反转一串字符
- r - 为什么常见的 R 数据类型/容器的索引如此不同是有原因的吗?
- python - keras 和 tensorflow(后端错误)在图中未找到在 feed_devices 或 fetch_devices 中指定的 Tensor conv2d_1_input:0
- postgresql - 在postgres中按大小比较三列值和三个输入
- arrays - React Native,从对象或数组构造初始状态值