Gitlab管道输出到CLI和Junit的可能性

xfb7svmp  于 2023-02-04  发布在  Git
关注(0)|答案(1)|浏览(135)

我有一个gitlab管道,它运行一个非常基本的ansible剧本。在ci文件中,我设置了env变量以输出到一个Junit文件。

- export ANSIBLE_STDOUT_CALLBACK=junit
- export JUNIT_OUTPUT_DIR="results"

虽然在测试部分的运行结束时给了我一个很好的可读报告,但是这剥夺了我在stdout cli中看到我的剧本在运行中的位置,它在atm上运行的是什么服务器等的能力。对于一个可能需要几个小时才能运行的作业,能够了解它在运行中的位置是很好的。
有没有什么办法可以两全其美?我可以有stdout,并且仍然生成Junit报告,或者它们是相互排斥的?我读过一些文章,上面说你只能有一个DEFAULT回调,措辞似乎暗示这是可能的,但是我的搜索还没有找到一个例子。帮助我的蜂群思维,你是我唯一的希望。

bpsygsoo

bpsygsoo1#

从文件来看,
您只能有一个插件作为控制台输出的主管理器。如果您想替换默认插件,您应该在子类中定义CALLBACK_TYPE = stdout,然后在ansible.cfg中配置stdout插件。
换句话说:您可以使用任意数量的回调插件,但是不允许其中一个以上的插件将其CALLBACK_TYPE设置为stdout,并且您应该在stdout_callbackansible.cfg设置(ANSIBLE_STDOUT_CALLBACK环境变量)中命名此插件,而不是在callbacks_enabledANSIBLE_CALLBACKS_ENABLED)中命名您正在使用的其余回调插件。
文档没有进一步详细说明CALLBACK_TYPE是什么,或者对于每个内置回调插件它的值是什么,但是在源代码中很容易发现,值得注意的是,junit插件没有stdoutCALLBACK_TYPE
最终,这意味着您可以保留ANSIBLE_STDOUT_CALLBACK作为默认值(这将恢复您的stdout输出),而使用ANSIBLE_CALLBACKS_ENABLED调用junit插件。
TL;医生:

- export ANSIBLE_CALLBACKS_ENABLED=junit
- export JUNIT_OUTPUT_DIR="results"

相关问题