🙆
GitLab CIのRust向けキャッシュ設定
TL;DR
variables:
CARGO_HOME: $CI_PROJECT_DIR/cargo
script:
- mkdir -p $CARGO_HOME
- ln -s /usr/local/cargo/bin $CARGO_HOME/bin
- ln -s /usr/local/cargo/env $CARGO_HOME/env
- # build, test, etc.
cache:
- key: "crates.io"
paths:
- cargo/bin/
- cargo/registry/index/
- cargo/registry/cache/
- cargo/git/db/
- key:
files:
- Cargo.lock
paths:
- target/
解説
$CARGO_HOME
を $CI_PROJECT_DIR
の下にしないとcache出来ない模様。
更に、ただディレクトリを変更するとbin以下のファイルが見つからなくなるのでシンボリックリンクを張っている。(念の為envも)
target
以下は Cargo.lock
をキーにしている。
これが変わってなければビルド結果使いまわしても大丈夫でしょという判断。
(もっと良い方法があれば教えて下さい)
参考ページ
Discussion