我正在尝试在 GitHub 上的 Action 中编译所有 C 项目。
这是我正在运行的命令:
\! find . -name Makefile -type f -execdir make re \; 2>&1 | grep -qF 'Error 1'
grep
如果发现“错误 1”,则退出 1 ,这是make
失败时显示的内容。在本地它工作得很好,我什至拉了一个新的分支以确保它不是一些本地更改导致有偏差的结果。但什么也没有...
这是我的管道中显示的内容(Github 上的原始日志):
2023-02-21T13:45:13.6257013Z ##[group]Run \! find . -name Makefile -type f -execdir make re \; 2>&1 | grep -qF 'Error 1'
2023-02-21T13:45:13.6257510Z [36;1m\! find . -name Makefile -type f -execdir make re \; 2>&1 | grep -qF 'Error 1'[0m
2023-02-21T13:45:13.6313689Z shell: /usr/bin/bash -e {0}
2023-02-21T13:45:13.6313965Z ##[endgroup]
2023-02-21T13:45:13.6506466Z ##[error]Process completed with exit code 1.
我也尝试过将脚本放入build.sh
文件中,但收到grep: conflicting matchers specified
警告,并且没有错误(即使make
强制错误)
我进行过的测试:
- 原始脚本(动作链接|工作流程链接) => 无缘无故退出 1
- 文件中的脚本 (动作链接|脚本链接) => 无缘无故退出 0 + grep 警告
- 文件中的脚本(强制错误)(行动链接|脚本链接) => 无缘无故退出 0 + grep 警告
如果我正在使用的命令有更好的替代方案,该命令可以编译直接子目录中的所有 Makefile,那也很棒! :)