2013-06-29 76 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