特拉维斯 CI。如何制作使用Faye服务器的通行证?

Travis CI. How to make pass specs which use Faye server?

Private pub gem 需要额外的 Faye 服务器来为消息队列提供服务。它与 rails 服务器并行启动,命令为:rackup private_pub.ru -s thin -E production

为了通过某些规范,也需要此服务器。所以我将它的启动命令包含在 .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 .

我做错了什么?

未找到 rackup 命令。你会想要 运行 像这样使用 bundler exec rackup(假设 rack 等在你的 Gemfile 中):

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

使用 bundle exec 使用 gemfile 中的内容而不是系统中的内容(在这种情况下,它不在系统中,因此您会遇到错误)。这是一个很棒的 link,它解释了更多关于 rack 和 bundle exec 的内容:https://robots.thoughtbot.com/but-i-dont-want-to-bundle-exec

在 Travis 上,您也不需要将机架添加到服务中,只需将其放在您的 Gemfile 中即可。 :)