概要
Elm 0.19.0をConcouseCIでビルドするときに、キャッシュを効かせるようにするのに手間取りました。
キャッシュがプロジェクト外にできてしまい(~/.elm)、タスク実行のたびにリセットされ、コンテナ間の共有ディレクトリとして扱う方法がすぐに思いつかなかったからです。
最終的に、以下の方法でキャッシュが残りました。
使った方法
- ビルドタスクのyamlのcaches.pathで、.elm内のファイルをキャッシュするためのパスを任意に設定
- 自分はgolangと一緒にビルドするので、"gopath/.elm"とした
caches:
- path: gopath/src/
- path: gopath/.elm/ # 追加
-
タスクから実行するスクリプトでコンパイル開始前に、/root/.elmにシンボリックリンクを作って、gopath/.elmに繋げる
.bash# こんな感じ DOTELM=`readlink -f gopath/.elm` # キャッシュDIRをフルパス化 echo "Elm用キャッシュDIR" echo $DOTELM mkdir -p $DOTELM # ディレクトリがまだなかったら作成 ln -s $DOTELM /root/.elm # 実際に使うパスに繋げる