2013-06-29 35 views
0

我有一个Rails项目设置与目录结构是这样的:特拉维斯CI使用Rails不是在根目录

研究/ my_rails_app

与研究的根目录下有一些辅助脚本和其他东西,我希望包含在版本控制下,但不是Rails应用程序本身的一部分。我希望通过Travis CI获得CI,并且该项目托管在Github上。我是Travis 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 

当特拉维斯尝试构建的错误信息是:

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

似乎有一些关于我的应用程序结构布局的困惑。我的应用程序是这样的:research/twitter_analysis /然后.travis yaml文件位于研究目录中!谢谢! – noname

回答

2

我会尝试解决您应该一次更改一个错误的方法。

随着第一个错误

The command "psql -c 'create database test-postgres_production;' -U test-postgres" failed and exited with 2 during before_script. 

让我们添加以下获得Postgres数据库回事特拉维斯CI:

现在,我们正在运行耙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

+0

我会试试这个,让你知道它是怎么回事!谢谢!请参阅我上面的评论,了解我的travis.yml的位置。谢谢!! – noname

+0

没问题。我认为.travis.yml文件的位置将导致最后一个问题。根据我的经验,它始终位于应用程序的根目录,您可以在其中找到应用程序,配置,数据库和随后的Rails文件夹。 – fabsays

+1

.travis.yml确实必须位于目录的根目录中,否则Travis将不会提取它。 – henrikhodne