我有一个Rails项目设置,其目录结构如下:
研究/ my_rails_app
研究根目录有一些帮助脚本和我希望包含在版本控制下的其他东西,但不是Rails应用程序本身的一部分。我希望在Travis CI中使用CI,该项目在Github上托管。我是特拉维斯CI的新手,所以如果这是一个愚蠢的问题...请耐心等待。我的.travis.yml文件如下:
language: ruby
rvm:
- 1.9.3
script: bundle rake rspec twitter_analysis/spec
services:
-mongodb
before_script:
- psql -c 'create database test-postgres_production;' -U test-postgres
gemfile:
- /twitter_analysis/Gemfile
Travis尝试构建时的错误消息是:
The command "psql -c 'create database test-postgres_production;' -U test-postgres" failed and exited with 2 during before_script.
另一个是:
-mongodb: unrecognized service
和
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
我该如何解决这个问题?
答案 0 :(得分:2)
我会尝试解决您应该一次更改一个错误的问题。
第一个错误:
The command "psql -c 'create database test-postgres_production;' -U test-postgres" failed and exited with 2 during before_script.
让我们添加以下内容以获取Travis CI上的postgres数据库:
env:
- DB=postgresql
script:
- bundle exec rake db:migrate
- bundle exec rake db:test:prepare
- bundle exec rake spec
before_script:
- bundle exec rake db:create RAILS_ENV=test
现在我们正在运行rake tast来创建数据库,您应该能够删除before_script:
现在是第二个错误:
-mongodb: unrecognized service
我认为你只需要mongodb
之前的空格:
services:
- mongodb
第三个也是最后一个错误:
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
我之前没有遇到过这个问题,但我听说无法解析你的.travis.yml。仔细检查它是否是一个有效的YAML文件,拼写正确且位置正确。你能确认它在应用程序的根目录中并命名为 .travis.yml 吗?