書こうと思った動機
Github Packageに登録しようとした時に、この問題に遭遇しました。
この問題を解決するのに、ちょっとだけ時間がかかったので、自分の備忘録として何か書いておこうと思いました。
背景
最近ではGithub Actionsは無料枠があり、CI/CD環境として知名度が上がってきました。
私自身も興味があったのですが、公開したいライブラリを作るみたいな案が私自身にあまりなく、触る機会がありませんでした。
この度は参加している案件で、Github Actions/Github Packagesに触れる機会があり触ってみた所、この問題に遭遇しました。
私が0から作ったわけではなく、既に環境整備が終わっている状態で、Packagesに追加で登録するというタスクでした。
なので基本コピペしたら動くだろうと考えていました。
公開するPackageはJavaのLibraryで、Mavenを使ってBuildしています。
本記事では触れないこと
- github actionsの定義ファイルの書き方
本題
実際どういう問題が発生したかというと、ビルドが通らない という問題でした。
私が追加したものを動作確認しようと、Github Actionsは実行履歴を見ていると、ステータスがREDになりました。
当初は触ったことない所なので、何かミスをしたかなと思い、実行履歴の詳細を見てみると、Mavenが次エラーを出力していました。
[INFO] -------------------------------------------------------------
Error: COMPILATION ERROR :
[INFO] -------------------------------------------------------------
Error: hogehoge could not create parent directories
・
・
・
私はこのエラーを初めて見たのですが、ググってもそれだ!!という記事にたどり着かなく難儀しました。
原因
上記のエラーメッセージで重要なのは、could not create parent directoriesでした。
Github ActionsはJavaが勝手に作ったディレクトリに対して、権限を持っていない為このような例外が出力されたようです。
※このIssueのコメントで気づきました。
https://github.com/EbonJaeger/PerWorldInventory/issues/209#issuecomment-332715359
解決策
Buildする前に作業ディレクトリをGithub Actionsのタスクで作成することにより、無事Buildが通りました。
めでたしめでたし。
※最初はCOMPILATION ERRORでググったりしたのですが、JavaのVersion違いじゃね?みたいな記事が多く見つかりました。
※BuildエラーならLocalでも再現するはず!と思い、LocalでBuildしてみたのですが問題なく動作したので、頭を抱えました。