【问题标题】:Elixir mix auto acknowledgeElixir 混合自动确认
【发布时间】: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 选项来混合,这样它就不会询问而只是安装?

【问题讨论】:

    标签: hex travis-ci elixir elixir-mix


    【解决方案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 缓冲任何输入,因此恒定的“是”输入流可能导致溢出。看到这个答案:stackoverflow.com/questions/36522559/…我建议神奇神奇狗弗雷德的答案是一个更好的答案。
    • 确实.. 即使在小型应用程序中,这也会使您的 beam 过程爆炸到千兆字节的 RAM,直到触发 OOM 为止
    猜你喜欢
    • 2023-03-27
    • 2013-10-05
    • 2020-10-24
    • 1970-01-01
    • 2014-11-01
    • 2014-10-11
    • 2020-03-07
    • 2015-04-27
    • 1970-01-01
    相关资源
    最近更新 更多