在带有忍者的 gitlab CI 中使用彩色编译器输出

use colored compiler output in gitlab CI with ninja

在我的编译器选项中使用 -fdiagnostics-color 时,我在编译器输出(gcc 和 clang)中收到彩色输出。当我在本地计算机上 运行 时,这也适用于忍者。在 gitlab-CI 中做同样的事情,颜色被剥离。有没有办法在 gitlab CI?

中获得彩色编译器输出

我尝试使用 make 而不是 ninja,然后出现了颜色。

问题来自ninja's output handling(忍者必须干扰输出以避免并发进程混合它们的输出)。虽然 gcc/clang 即使在 gitlab-CI 问题彩色输出中,ninja 也会确定输出是转到普通用户终端还是日志文件并删除颜色。这在 ninja github 页面上有讨论:

用于smart-terminal检测和颜色保存: issue pull request

和一些相关的: another issue another pull request

编辑:自this 提交(即忍者 1.9.0)起,环境变量 CLICOLOR_FORCE 可用于禁用剥离颜色代码。