我的一个测试是一个带有if
条件的简单bash命令。如果条件为正,我希望Travis CI将构建视为失败。
我尝试这样做(.travis.yml
文件的一部分):
# ...
script:
- npm run build
- if [[ `git status --porcelain` ]]; then >&2 echo "Fail"; fi
# ...
但是当条件为正时,只会打印消息并认为构建成功。
当条件为正时,我该怎么做才能使构建失败?
答案 0 :(得分:5)
只需在exit 1;
之后添加echo
即可。 More info
答案 1 :(得分:1)
If you just want to assert a condition but continue with testing, the following worked for me:
bash -c 'if [[ `git status --porcelain` ]]; then >&2 echo "Fail"; exit 1; fi'
This will make the build results fail but not terminate it.
答案 2 :(得分:1)
添加return 1;
Travis compiles the different commands into a single bash script,因此exit 1
或travis_terminate 1
会突然中断工作流程并跳过after_script
阶段。
对于复杂的命令,您想使其更具可读性并且不想移动到自己的脚本,you can take advantage of YAML's literal scalar indicator:
script:
- |
if [[ `git status --porcelain` ]]; then
>&2 echo "Fail"
return 1
fi