我在SnapCI上运行我的Elixir项目的CI,并且我缓存了我的deps文件夹,因此每次尝试运行我的测试时都不必安装我的deps。我该怎么做?
我注意到DEPS_DIR
有一个env设置,但这似乎是一个螺纹钢的东西,还是一样?无论如何,我尝试了一个简单的项目,但它似乎不起作用,mix
仍然在我当前的文件夹中安装我的deps。
2015年3月4日更新
以下是snap-ci的完整脚本:
curl -O https://raw.githubusercontent.com/spawngrid/kerl/master/kerl && chmod a+x kerl
mkdir -p /var/go/deps
export MY_DEPS_PATH=/var/go/deps
set +e
./kerl update releases
./kerl cleanup 17.4
(./kerl list builds | grep 17.4) || (export MAKEFLAGS='-j3'; ./kerl build git https://github.com/erlang/otp/ OTP-17.4 17.4)
(./kerl list installations | grep 17.4) || (./kerl install 17.4 ~/.kerl/installs/17.4)
source ~/.kerl/installs/17.4/activate
mkdir -p vendor/elixir
wget --no-clobber -q https://github.com/elixir-lang/elixir/releases/download/v1.0.2/precompiled.zip
unzip -o -qq precompiled.zip -d vendor/elixir
export PATH=`pwd`/vendor/elixir/bin:$PATH
yes y | MIX_ENV=test mix do local.rebar
yes y | MIX_ENV=test mix deps.get
yes y | MIX_ENV=test mix deps.compile
MIX_ENV=test mix amrita --trace
答案 0 :(得分:4)
在伞形项目中,使用了“deps_path”选项。您可以在此处使用任何本地目录(参见[1])。
你必须自己决定它是否适合你的情况。如果您没有指定每个dep的精确版本,那么您将在CI(使用缓存的deps)和独立编译中获得不同的结果。当然,你可以将两者结合起来。
[1] http://elixir-lang.org/getting-started/mix-otp/dependencies-and-umbrella-apps.html