【问题标题】:Fail Gitlab pipeline based on output基于输出的Gitlab管道失败
【发布时间】:2020-10-02 09:00:12
【问题描述】:

我在 Gitlab 管道中使用 docker 容器 (sslyze) 进行一些测试。该管道始终成功,但如果容器在其输出中报告“FAIL”,我希望管道失败。目前,如果在终端输出中报告“FAIL”,仍会报告退出代码 0(因为扫描本身有效),因此 Gitlab 会通过管道。

我是 Gitlab 的新手,但对 Jenkins 很熟悉,在 Jenkins 中,您可能会根据使用 Text Finder 的终端输出失败这项工作。 Gitlab中是否有类似的概念?

【问题讨论】:

标签: gitlab gitlab-ci


【解决方案1】:

感谢 cmets 中的 @secustor 向我指出类似的问题。我希望在 Gitlab 中有一些本机功能,但我找不到。

相反,我查询了容器日志和退出代码,然后根据结果设置退出代码 1。

在 .gitlab-ci.yml 中(我在将逻辑拆分为多行时遇到了问题,因此全部卡在一行中):

  script:
  - docker run --name containername nablac0d3/sslyze --regular $URL
  - if [[ "$(docker logs containername >& container-logs ; cat container-logs | grep 'FAIL' | wc -l)" -gt 0 ]] || [[ "$(docker container wait containername)" -eq 1 ]]; then exit 1; fi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-14
    • 2021-03-27
    • 1970-01-01
    • 2012-12-17
    • 2020-12-12
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多