如果测试阶段返回错误,如何使CI管道失败?
这是我的测试阶段:
Test:
stage: Test
script:
- docker build -t r-docker-ci-test -f test.Dockerfile .
- docker run r-docker-ci-test
这是我的test.Dockerfile:
FROM r-base
RUN apt-get update && apt-get install -y libcurl4-openssl-dev libssl-dev libxml2-dev
RUN R -e "install.packages(c('devtools', 'testthat'), dependencies=TRUE)"
COPY . /usr/local/src/test
WORKDIR /usr/local/src/test
CMD R -e "devtools::check()"
这是输出:
R CMD check results
1 error | 2 warnings | 2 notes
.
.
.
Job succeeded
答案 0 :(得分:0)
GitLab和Docker正在按预期工作,这是关于你正在运行的命令的退出代码的更多问题,你的问题是它甚至在报告测试错误时都是0。 / p>
您可以在Dockerfile
CMD
节处理此问题,并按照建议here将测试运行R命令更改为R CMD check
。
或者您可以使用GitLab管道规范和grep
处理非零退出代码,如下所示:
Test:
stage: Test
script:
- docker build -t r-docker-ci-test -f test.Dockerfile .
- docker run r-docker-ci-test | | grep '^0\serror' > /dev/null