Open tokoharu opened 4 years ago
エラーメッセージを見る限り、kotlinのコンパイラであるkotlincが見つけられていないようです。sdkmanでのインストールは成功しているっぽいので、kotlincがあるディレクトリにPATHが通っていないんじゃないでしょうか。
参考になるかはわかりませんが、以前自分がdockerでrimeを動かそうとしたとき、kotlincとkotlinを無理やりシンボリックリンクで/binに追加しています。(参考)
追記: 今日はもう遅いので明日の夜にでも試してみます。
あまり美しくないですが、とりあえず動かす方法を見つけました。kotlinc
が必要になるステップで、次のコマンドを最初に実行すると成功します。(実際のworkflowファイル)
source "${HOME}/.sdkman/bin/sdkman-init.sh"
以降は、色々調べたり、試したりしたことのメモです。
sdkmanはインストール時に.bashrc
, .bash_profile
, または .zshrc
にsdkman-init.sh
を読み込む行を追加します。(これはインストールスクリプトを読むとわかる)このsdkman-init.sh
はsdkman自身と、それがインストールしたツール郡へPATHを通すスクリプトです。(おそらく)
一方、GitHub Actionsの実行環境では、.bashrc
などを読み込むような設定になっていないようです。(ここを斜め読みするとそれっぽいことが書いてあった)「ツールをインストールする専用のActionを作り、シェル起動時のスクリプトに頼らずに、PATHを通していけ」という思想らしいです。
リンク先の議論にある、shell: bash -l {0}
を追加して実行してみるというのも試してみましたが、うまく動きませんでした。sdkman-init.sh
の代わりに.bashrc
を直接読み込んでみるのも試してみましたが、そちらもうまく動きませんでした。たぶん、まだどこかに罠があるんだと思います。
追記: /binにシンボリックリンクを追加するやつは、パーミッションがねえぞと怒られました。
現在 @not522 さんの助言もあり、標題の件について検討しています。 ここで取り組みたいことは、push時の各種情報のArtifact化であり、成果物はexample以下に配置しようと考えています。
ここでArtifact化させる情報は次の二点を想定しています。
現在実験的にコードを書いており、下記のような形で動作することができています。 https://github.com/tokoharu/rime/runs/685658254
現在の問題点は次の点かと思います。コメントなどいただければ幸いです。