如何自定义我的Elixir项目deps目录?

Low*_*ong 5 elixir

我在SnapCI上运行我的Elixir项目的CI,并且我缓存了我的deps文件夹,因此每次尝试运行我的测试时都不必安装我的deps.我怎么做 ?

我注意到有一个env设置,DEPS_DIR但这似乎是一个螺纹钢的东西,或者它是一样的?无论如何,我尝试了一个简单的项目,但它似乎无法工作,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
Run Code Online (Sandbox Code Playgroud)

Mir*_*mek 4

在伞式项目中,使用了“deps_path”选项。您可以在此处使用任何本地目录(请参阅[1])。

您必须自行决定这是否适合您的情况。如果您没有指定每个 dep 的精确版本,那么您将在 CI(带有缓存 deps)和独立编译中得到不同的结果。当然,您可以将两者结合起来。

[1] http://elixir-lang.org/getting-started/mix-otp/dependency-and-umbrella-apps.html