2014-09-18 4 views
8

Я хочу запустить тесты своего приложения Phoenix на Travis-CI.Elixir mix auto признание

Вход отрывок:

$ 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 вариант для смешивания, чтобы он не спрашивал, а просто устанавливал?

ответ

24

Как и с любой командой UNIX, вы могли бы труба yes в команду смеси:

yes | MIX_ENV=test mix do deps.get, compile, test 
+9

Это просто взорвало мой разум. Внезапно само существование этой команды имеет такой смысл – pfac

+0

В Docker есть проблема (и, возможно, другие контексты) - Erlang буферизует любой вход, поэтому постоянный поток «да» может привести к переполнению. См. Этот ответ: http://stackoverflow.com/questions/36522559/docker-container-is-killed-after-1-minute Я предлагаю ответ от Fred the Magic Wonder Dog - лучший ответ. – PJeffes

+0

Действительно .. даже в небольших приложениях это приведет к тому, что процесс вашего луча будет раздуваться до гигабайт ОЗУ до тех пор, пока не будет запущен OOM. – Martijn

28

Вы можете добавить эту команду в before_install секции в .travis.yml local.hex

  • смеси --force

После того, как вы уже установили эликсир в предыдущей команде. I груз обработал этот .travis.yml из существующего проекта эликсира на github.

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" 
+9

Я думаю, что это лучшее решение и должно быть принято как ответ! –

 Смежные вопросы

  • Нет связанных вопросов^_^