问题描述
我正在使用Azure Pipelines GitHub加载项来确保提取请求能够通过我的操作.但是,我刚刚发出了一个测试请求请求,但失败了,但是Azure Pipeline成功了.
I am using the Azure Pipelines GitHub add-on to ensure that pull requests pass my linting. However, I have just made a test pull request which fails my linting, but the Azure Pipeline succeeds.
这是我的azure-pipelines.yml
# Node.js with React
# Build a Node.js project that uses React.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
trigger:
- master
pool:
vmImage: 'Ubuntu-16.04'
steps:
- task: NodeTool@0
inputs:
versionSpec: '8.x'
displayName: 'Install Node.js'
- script: |
npm install
npm run lint # Mapped to `eslint src` in package.json
npm run slint # `stylelint src` in package.json
npm run build
displayName: 'npm install and build'
这是分支的输出(部分),我知道它在npm run lint
And here is (part of) the output on a branch which I know fails on npm run lint
> [email protected] lint /home/vsts/work/1/s
> eslint src
/home/vsts/work/1/s/src/js/components/CountryInput.js
26:45 error 'onSubmit' is missing in props validation react/prop-types
27:71 error 'onSubmit' is missing in props validation react/prop-types
✖ 2 problems (2 errors, 0 warnings)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] lint: `eslint src`
npm ERR! Exit status 1 # Exit status 1, yet the build succeeds?
npm ERR!
npm ERR! Failed at the [email protected] lint script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/vsts/.npm/_logs/2019-03-16T05_30_52_226Z-debug.log
> [email protected] slint /home/vsts/work/1/s
> stylelint src
> [email protected] build /home/vsts/work/1/s
> react-scripts build
Creating an optimized production build...
Compiled successfully.
# Truncated...
如您所见,linter运行良好,捕获了我的故意错误(我删除了道具类型验证),并退出代码1.
As you can see, linter runs nicely and catches my intentional error (I removed a prop type validation), and exits with code 1.
但是构建只是继续进行着快乐的方式.
However the build just carries on its merry way.
我要怎么做才能使这种掉毛错误使我的构建停滞不前而不返回成功?
What do I need to do to make such a linting error stop my build in its tracks and not return success?
谢谢.
推荐答案
这意味着您的脚本吞噬"了退出代码并正常退出.您需要在脚本中添加一条检查代码,以捕获npm run lint
的退出代码并使用相同的退出代码退出,例如:
this means your script "swallows" the exit code and exits normally. you need to add a check to your script that would catch the exit code of your npm run lint
and exit with the same exit code, something like:
- script: |
npm install
npm run lint # Mapped to `eslint src` in package.json
if [ $? -ne 0 ]; then
exit 1
fi
npm run slint # `stylelint src` in package.json
npm run build
这篇关于当linting脚本返回错误时,如何使Azure DevOps Pipeline构建失败?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!