Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

コンテスト準備時のGitHub Actions整備について #73

Open
tokoharu opened this issue May 18, 2020 · 3 comments
Open

コンテスト準備時のGitHub Actions整備について #73

tokoharu opened this issue May 18, 2020 · 3 comments

Comments

@tokoharu
Copy link

現在 @not522 さんの助言もあり、標題の件について検討しています。
ここで取り組みたいことは、push時の各種情報のArtifact化であり、成果物はexample以下に配置しようと考えています。

ここでArtifact化させる情報は次の二点を想定しています。

  • markdownifyした結果ファイル
  • packした情報のまとめ

現在実験的にコードを書いており、下記のような形で動作することができています。
https://github.com/tokoharu/rime/runs/685658254

現在の問題点は次の点かと思います。コメントなどいただければ幸いです。

  • Kotlinのコンパイルが通らない (詳しい方教えてください)
  • artifact生成条件の方針について
    artifactとしてmarkdownifyしたファイルとpackした後のファイルを配置しますが、markdownify後のファイルは、markdownifyがErrorしていても生成してほしいように感じます。一方で、pack後のファイル群は、誤ってアップロードしても困るので、Errorがあればskipして生成しない方がよいのではないかと考えていますが、いかがでしょうか。
@blue-jam
Copy link
Member

blue-jam commented May 18, 2020

エラーメッセージを見る限り、kotlinのコンパイラであるkotlincが見つけられていないようです。sdkmanでのインストールは成功しているっぽいので、kotlincがあるディレクトリにPATHが通っていないんじゃないでしょうか。

参考になるかはわかりませんが、以前自分がdockerでrimeを動かそうとしたとき、kotlincとkotlinを無理やりシンボリックリンクで/binに追加しています。(参考)

追記: 今日はもう遅いので明日の夜にでも試してみます。

@blue-jam
Copy link
Member

blue-jam commented May 19, 2020

あまり美しくないですが、とりあえず動かす方法を見つけました。kotlincが必要になるステップで、次のコマンドを最初に実行すると成功します。(実際のworkflowファイル

source "${HOME}/.sdkman/bin/sdkman-init.sh"

以降は、色々調べたり、試したりしたことのメモです。

sdkmanはインストール時に.bashrc, .bash_profile, または .zshrcsdkman-init.shを読み込む行を追加します。(これはインストールスクリプトを読むとわかる)このsdkman-init.shはsdkman自身と、それがインストールしたツール郡へPATHを通すスクリプトです。(おそらく)

一方、GitHub Actionsの実行環境では、.bashrcなどを読み込むような設定になっていないようです。(ここを斜め読みするとそれっぽいことが書いてあった)「ツールをインストールする専用のActionを作り、シェル起動時のスクリプトに頼らずに、PATHを通していけ」という思想らしいです。

リンク先の議論にある、shell: bash -l {0}を追加して実行してみるというのも試してみましたが、うまく動きませんでした。sdkman-init.shの代わりに.bashrcを直接読み込んでみるのも試してみましたが、そちらもうまく動きませんでした。たぶん、まだどこかに罠があるんだと思います。

追記: /binにシンボリックリンクを追加するやつは、パーミッションがねえぞと怒られました。

@tokoharu
Copy link
Author

@blue-jam 色々試していただきありがとうございます!書き換えたら確かに動きました!!
動いたワークフロー (AC)

こういうことに取り組んだことが無くて知りませんでしたが、環境をクリーンに保つ思想はこういう時に面倒になるんですね。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants