なにが起きたか
workflow の中で composite action として .github フォルダに置いた action を実行しようとしたところで、パスが存在しなくて失敗してました。
- name: report uses: ./.github/actions/composite/test-report with: report_paths: test/*.xml if: always()
この composite action はいろいろなジョブで使っていたのですが、なぜか一部のジョブだけ失敗してました。
失敗していたジョブの共通点としては container 指定していて、 runner 上ではなく in コンテナなジョブであることでした。
なぜ .github フォルダがないのか?
確認してみるとパス指定ミスでもなく本当に .github フォルダがありませんでした。
ないフォルダはそれだけではなく、いくつか存在しないパスがありました。
これ見て即座に git export の除外指定だなとわかりました。
大分昔に Release 時に不要なパスが含まれないようにしていたのでした。
(git export の使い方としてあっているのかは知らない)
git export の設定を修正して、リリースワークフローを変えれば解決はするのですが、本質的ではないので export 設定はこのままにし、調査を続行。
なぜアーカイブダウンロードになったか?
export-ignore は clone/checkout には影響がないはずですし、
checkout 後にこれらのパスを削除するようなことはないです。
そこで actions@checkout ステップのログを確認してみると
なせかアーカイブダウンロードしてました。(なぜ?)
よくよく見ると・・・
The repository will be downloaded using the GitHub REST API To create a local Git repository instead, add Git 2.18 or higher to the PATH
どうしたか
使用してたコンテナイメージを更新して、インストールされている git のバージョンを更新しました。
git がインストールすらされていないコンテナイメージもありましたが、それでもなんとかしてくれる actions@checkout 偉いなと思いました。
コンテナの git が古い・ない、かつ export-ignore してるというなかなか踏むことなさそうな条件ですが、誰かの参考になれば幸いです。
では。
0 件のコメント:
コメントを投稿