Continuous integration 允许Travis CI.yml中的非零返回码

Continuous integration 允许Travis CI.yml中的非零返回码,continuous-integration,latex,travis-ci,Continuous Integration,Latex,Travis Ci,我正在尝试设置Travis CI以生成latex报告。在构建latex报告时,必须重复一些步骤,因此第一次调用这些步骤时会有一个非零返回代码 我的travis.yml到目前为止 language: R before_install: - tlmgr install index script: - latex report - bibtex report - latex report - latex report - dvipdf report.dv

我正在尝试设置Travis CI以生成latex报告。在构建latex报告时,必须重复一些步骤,因此第一次调用这些步骤时会有一个非零返回代码

我的travis.yml到目前为止

language: R

before_install:
  - tlmgr install index

script:
    - latex report
    - bibtex report
    - latex report
    - latex report
    - dvipdf report.dvi report.pdf
然而在Travis文档中,它表示

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

因此,如果我的第一个
latex report
命令具有非零返回代码,则构建将失败

我只希望在最后一个
latex报告
dvipdf报告
失败时构建失败

有人有什么想法或帮助吗


提前谢谢。

与您最初的问题没有直接关系,但我也有同样的问题

我找到了一个解决方案。这可以根据需要多次运行latex和bibtex

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

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


然后您可以这样运行它:
latexmk-pdf-xelatex[您的胶乳文件]

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

(复杂)例如:

  • docker命令返回<0(因为这是一个否定测试),但我们还是要继续
  • 2>&1
    -stderr被转发到stdin(稍后由
    grep
    获取)
  • tee
    -输出被打印(用于调试)并转发给grep
  • 最后,
    grep
    断言输出是否包含必需的字符串。如果没有,则
    grep
    返回>0生成失败。
    如果我们想忽略
    grep
    s结果,我们需要在grep之后再添加一个
    | | true

取自。

Do
command | | true
忽略
command
的返回值。
- (docker run --rm -v $(pwd)/example:/workdir stocker-alert || true) 2>&1 | tee >(cat) | grep 'Price change within 1 day'