如何在github CI中调试?

How to debug in github CI?

提问人:leonbear 提问时间:11/20/2021 最后编辑:leonbear 更新时间:9/26/2023 访问量:1422

问:

非常奇怪的是,我的代码在我的笔记本电脑中传递了所有 UT/IT,但它在 github CI 中遇到了错误。 你介意帮忙在 github CI 中调试一些方法吗?还是让代码像 github 一样在本地运行?

这是一个关于时间序列数据库的项目,Apache-IoTDB。该错误看起来像是普通代码中的微不足道的逻辑错误。希望它可能有助于诊断错误。谢谢!

github-actions 拉取请求 apache-iotdb iotdb

评论

1赞 Janez Kuhar 11/20/2021
您的代码在本地通过测试但在 CI 服务器上无法通过测试,这并没有什么奇怪的。有时,一个简单的情况,错误配置的行尾可能会导致构建在 Unix 机器上失败,而在 Windows 机器上传递相同的代码。
1赞 Janez Kuhar 11/20/2021
这是一个非常复杂的 CI 管道!您可能会发现这很有帮助:下载日志。通过下载日志,您可以更仔细地检查每个操作步骤的输出,因为如果日志太长,日志会在浏览器中被截断。据我所知,您在似乎是多线程代码中存在一些测试错误。

答:

4赞 Nate 11/20/2021 #1

act 是 GitHub Actions 工作流的本地运行器,应该与真实事物几乎相同。

或者,debugging-with-ssh 操作使用 upterm 在容器中打开 SSH 侦听器,以获取 GitHub Actions 本身中正在运行的工作流的 shell。

评论

0赞 leonbear 11/20/2021
谢谢你的回答!我现在将尝试此工具
-1赞 leonbear 11/21/2021 #2

这个问题通过再次合并master(我的拉取请求转发到的分支)直接解决了。

关键是,github CI(操作)可能正在运行在拉取请求接受时自动合并的代码上。

因此,如果您的代码在本地通过了所有测试,但在 CI 中失败了,并且与本地调试的结果不同,请尝试合并 PR 转发可能会解决问题的分支。

希望这能给你带来惊喜,并在这个问题下感谢大家。