2016-04-06 6 views
0

Private pub gem нуждается в дополнительном сервере Faye для обслуживания очередей сообщений. Он запускается параллельно с сервером rails с командой: rackup private_pub.ru -s thin -E productionTravis CI. Как сделать спецификации прохода, которые используют сервер Faye?

Этот сервер также необходим для заказа некоторых спецификаций. Таким образом, я включаю свою команду запуска в .travis.yml:

language: ruby 
services: 
    - postgresql 
    - rack 

before_script: 
    - rackup private_pub.ru -s thin -E production 
    - cp config/database.yml.travis config/database.yml 
    - psql -c 'create database travis_ci_test;' -U postgres 

, но при сборке эта команда вызывает ошибку:

0.00s$ rackup private_pub.ru -s thin -E production 
/home/travis/build.sh: line 45: rackup: command not found 
The command "rackup private_pub.ru -s thin -E production" failed and exited with 127 during . 

Что я делаю неправильно?

ответ

1

Команда rackup не найдена. Вы хотите запустить rackup с помощью пакетирования Exec как этот (предполагается, что стойки и т.д. в вашем Gemfile):

before_script: 
    - bundle exec rackup private_pub.ru -s thin -E production & 

Использование расслоение Exec использует то, что в вашем Gemfile вместо того, что в системе (в этом case, это не в системе, поэтому вы получаете сообщение об ошибке). Вот отличная ссылка, которая объясняет немного больше о стойке и пакете exec: https://robots.thoughtbot.com/but-i-dont-want-to-bundle-exec

На Travis вам также не нужно добавлять стойку в сервисы, просто используйте ее в своем Gemfile. :)

+0

Почти работал) Этот процесс начался и заблокировал сборку. Как я могу разблокировать его из основного процесса сборки, потому что он должен запускаться параллельно, чтобы получать и отправлять сообщения в websocket? –

+0

Я думал, что нашел - мне нужно добавить & в конце командной строки: - bundle exec rackup private_pub.ru -s thin -E production & –

+1

Эй! Полностью забыл об этом и, извините! Я отредактировал ответ для будущих пользователей. :) – sinthetix