GitHubのActionですべてのCプロジェクトをコンパイルしようとしています。
これは私が実行しているコマンドです。
\! find . -name Makefile -type f -execdir make re \; 2>&1 | grep -qF 'Error 1'
grep
make
失敗時に表示される「Error 1」が見つかった場合は、1を終了します。ローカルではうまくいきます。ローカルの変更によって結果が歪んでいないことを確認するために、新しいブランチもインポートされました。しかし、何もありません...
私のパイプライン(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をコンパイルするために私が使用しているコマンドのより良い選択肢があればそれも良いでしょう! :)