在Azure DevOps中脚本失败后继续构建

时间:2019-06-18 12:16:19

标签: azure-devops azure-pipelines

在我的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

似乎Cypress将ErrorAction视为Cypress参数。

那么,如果任务失败,继续构建的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以将以下内容添加到任务中:

continueOnError: true

现在,即使测试失败,构建也将继续运行。

如果在测试失败的情况下要使构建失败,但只想运行一个任务来发布结果,则可以将其添加到“发布测试”任务中:

condition: always()

现在,发布任务将始终运行,即使测试失败,构建也将被取消/失败。