允许在Travis CI .yml中使用非零返回码

时间:2016-02-17 09:07:49

标签: continuous-integration latex travis-ci

我正在尝试设置Travis CI以构建乳胶报告。在构建乳胶报告时,必须重复一些步骤,因此第一次调用它们时会返回非零的返回码。

到目前为止,我的travis.yml是

language: R

before_install:
  - tlmgr install index

script:
    - latex report
    - bibtex report
    - latex report
    - latex report
    - dvipdf report.dvi report.pdf

然而,在Travis Docs中,它说明了

  

如果脚本返回非零退出代码,则构建失败,但在被标记为失败之前继续运行。

因此,如果我的第一个latex report命令具有非零返回码,则它将无法构建。

如果最后latex reportdvipdf report失败,我只希望构建失败。

有没有人有任何想法或帮助?

提前致谢。

2 个答案:

答案 0 :(得分:1)

与您的原始问题没有直接关系,但我遇到了同样的问题。

我找到了使用latexmk的解决方案。这样可以根据需要运行乳胶和bibtex多次。

如果您查看我的Travis配置文件:

https://github.com/73VW/TechnicalReport/blob/master/.travis.yml

您将看到您只需将其添加到apt依赖项中即可。

然后您可以像这样运行它:latexmk -pdf -xelatex [Your_latex_file]

答案 1 :(得分:1)

只需将|| true附加到您的命令即可。

(复杂)示例:

- (docker run --rm -v $(pwd)/example:/workdir stocker-alert || true) 2>&1 | tee >(cat) | grep 'Price change within 1 day'
  • docker命令返回<0(因为它是负测试),但是我们还是要继续
  • 2>&1-stderr被转发到stdin(稍后由grep接收)
  • tee-输出输出(用于调试)并转发到grep
  • 最后grep声明输出是否包含必需的字符串。如果不是,grep将返回> 0,从而使构建失败。
    如果我们想忽略grep的结果,则在grep之后需要另外一个||true

来自schnatterer/stock-alert