Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
避免GitHub操作缓冲_Github_Github Actions - Fatal编程技术网

避免GitHub操作缓冲

避免GitHub操作缓冲,github,github-actions,Github,Github Actions,我有一个包含一些Linux实用程序的Github repo 要运行测试,我使用GitHub操作和一些简单的自定义工作流,这些工作流使用自托管运行程序在远程Linux服务器上运行: 名称:CMake on:[推] 环境: 构建类型:发布 工作: 建造: 运行时间:自托管 步骤: -用途:行动/checkout@v2 -名称:Build 工作目录:${runner.workspace}}/Utils shell:bash 运行:cmake——构建--配置$BUILD\u类型 -名称:运行测试 工作目

我有一个包含一些Linux实用程序的Github repo

要运行测试,我使用GitHub操作和一些简单的自定义工作流,这些工作流使用自托管运行程序在远程Linux服务器上运行:

名称:CMake
on:[推]
环境:
构建类型:发布
工作:
建造:
运行时间:自托管
步骤:
-用途:行动/checkout@v2
-名称:Build
工作目录:${runner.workspace}}/Utils
shell:bash
运行:cmake——构建--配置$BUILD\u类型
-名称:运行测试
工作目录:${runner.workspace}}/Utils
shell:bash
运行:./testing/test.sh
工作流程非常简单-我使用
cmake
编译源代码,然后从同一个repo运行脚本来测试构建。测试脚本是一个bash脚本,如下所示:

#/bin/bash
导出LD_LIBRARY_PATH=/PATH/to/bin
cd/path/to/bin
echo-e“开始测试”
/run\u服务器&
/运行测试
如果[$?-等式0];然后
回声“成功”
其他的
回显“失败”
出口1
fi
在这里,脚本从我的代码(run_server)启动一个已编译的应用程序,然后运行与之通信的测试实用程序并打印结果

实际上,我在
run\u tests
内部使用C
printf()
打印输出字符串。如果我在本地机器上运行,我会得到如下输出:

开始测试
test1执行正常
test2执行正常
test3执行正常
成功的
每次测试大约需要1秒钟。因此,应用程序每秒打印一行,如
testX executed Ok

但是,如果它使用Github操作运行,则输出看起来有点不同(从Github操作控制台复制):

/testing/test.sh
shell:/bin/bash--noprofile--norc-e-o pipefail{0}
环境:
构建类型:发布
开始测试
成功的
即使在这种情况下,bash脚本的输出也只能在脚本完成后打印出来。 所以我有两个问题:

  • 测试应用程序没有输出
    printf()
  • 脚本输出(使用
    echo
    打印)仅在脚本完成后出现
当我在本地机器上运行时,我期望Github操作的行为与我在本地机器上的行为相同,即我看到每秒打印1行。马上

看起来Github操作会缓冲所有输出,直到执行一个步骤,并忽略bash脚本中运行的应用程序的所有打印

是否有一种方法可以在执行步骤时实时获取所有输出