2015-03-03 18 views
4

我正在SnapCl上運行我的Elixir項目的CI,並且緩存我的deps文件夾,以便每次嘗試運行我的測試時都不必安裝我的代理。我怎麼做 ?我如何定製我的Elixir項目deps目錄?

我注意到有一個env設置DEPS_DIR,但這似乎是螺紋鋼的東西,還是它是一樣的?無論如何,我在一個簡單的項目上嘗試過,但它似乎不起作用,並且mix仍將我的代碼安裝到我當前的文件夾中。

更新2015年3月4日

這裏是我的卡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

mix應該不會獲取依賴關係,除非您明確請求它獲取它們。請分享您正在使用的實際shell腳本或命令行。 – 2015-03-03 16:36:27

回答

3

在總體項目,有使用 「deps_path」 選項。你可以在這裏使用任何本地目錄(見[1])。

您必須自己決定是否適合您的情況。如果您沒有指定每個dep的精確版本,您將在CI(使用緩存的版本)和獨立編譯中獲得不同的結果。當然你可以把兩者結合起來。

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

+0

有沒有可以爲此設置的環境變量? – 2015-03-03 08:16:42

+0

您可以在項目配置中設置環境變量:'deps_path:System.get_env(「MY_DEPS_PATH」)|| 「DEPS」' – 2015-03-03 11:20:29

相關問題