Elixir 混合自动确认
Posted
技术标签:
【中文标题】Elixir 混合自动确认【英文标题】:Elixir mix auto acknowledge 【发布时间】:2014-11-12 17:12:29 【问题描述】:我想在 Travis-CI 上运行我的 Phoenix 应用程序测试。
日志摘录:
$ MIX_ENV=test mix do deps.get, compile, test
Could not find hex, which is needed to build dependency :phoenix
Shall I install hex? [Yn]
在获取和安装依赖项时,它会询问是否应该安装hex
。我想知道我是否可以通过 --yes
选项来混合,这样它就不会询问而只是安装?
【问题讨论】:
【参考方案1】:您可以将此命令添加到 .travis.yml 中的 before_install 部分
混合 local.hex --force当然,您已经在之前的命令中安装了 elixir。一世 cargo 从 github 上现有的 elixir 项目中获取了这个 .travis.yml。
language: erlang
env:
- ELIXIR="v1.0.0"
otp_release:
- 17.1
before_install:
- mkdir -p vendor/elixir
- wget -q https://github.com/elixir-lang/elixir/releases/download/$ELIXIR/Precompiled.zip && unzip -qq Precompiled.zip -d vendor/elixir
- export PATH="$PATH:$PWD/vendor/elixir/bin"
- mix local.hex --force
script: "MIX_ENV=test mix do deps.get, test"
【讨论】:
我认为这是更好的解决方案,应该被接受为答案!【参考方案2】:与任何 unix 命令一样,您可以通过管道将yes
输入到 mix 命令中:
yes | MIX_ENV=test mix do deps.get, compile, test
【讨论】:
这让我大吃一惊。突然间,这个命令的存在变得非常有意义 这在 Docker 中存在问题(可能还有其他上下文) - Erlang 缓冲任何输入,因此恒定的“是”输入流可能导致溢出。看到这个答案:***.com/questions/36522559/…我建议神奇神奇狗弗雷德的答案是一个更好的答案。 确实.. 即使在小型应用程序中,这也会使您的 beam 过程爆炸到千兆字节的 RAM,直到触发 OOM 为止以上是关于Elixir 混合自动确认的主要内容,如果未能解决你的问题,请参考以下文章