作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我们的 gitlab 服务器上设置 CI 构建的步骤中,我似乎找不到有关如何设置编译器警告检测的信息。示例构建输出:
[100%] Building CXX object somefile.cpp.o
/home/gitlab-runner/builds/XXXXXXX/0/group/project/src/somefile.cpp:14:2: warning: #warning ("This is a warning to test gitlab") [-Wcpp]
#warning("This is a warning to test gitlab")
^
success
而不是
warning
或类似的东西。理想情况下,结果也会在功能的合并请求中可见(并尽可能阻止合并)。
stages:
- build
- check-warnings
shellinspector:
stage: build
script:
- cmake -Bcmake-build -S.
- make -C cmake-build > >(tee make.output) 2> >(tee make.error)
artifacts:
paths:
- make.output
- make.error
expire_in: 1 week
analyse build:
stage: check-warnings
script:
- "if [[ $(cat make.error | grep warning -i) ]]; then cat make.error; exit 1; fi"
allow_failure: true
make.error
中在第一阶段,下一阶段然后查询该文件以获取警告并在该阶段失败
allow_failure: true
创建
passed with warning
我正在寻找的管道状态。
最佳答案
似乎这种需求的解决方案(例如,请参阅问题“添加新 CI 状态:已警告”https://gitlab.com/gitlab-org/gitlab-runner/issues/1224)已经引入 allow_failure选项,以便一项作业可以是编译本身,不允许失败(如果失败,则管道失败),而另一项作业可以是检测此类允许失败的警告(如果找到,则管道不会失败)。
也可以定义 warning regex in the .gitlab-ci.yml已被请求,但尚不存在。
关于gcc - 如何在 gitlab CI 中检测编译器警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59680450/
我是一名优秀的程序员,十分优秀!