2012-11-21 79 views
5

我正在嘗試在travis-ci中構建node.js項目。這是我的.travis.yml文件:無法使用Travis-ci構建和部署node.js項目 - 沒有找到Rakefile

language: node_js 
node_js: 
    - 0.8 

after_script: 
    # Install the Heroku package (or the Heroku toolbelt) 
    - npm install heroku 
    # Add your Heroku git repo: 
    - git remote add heroku [email protected]:*****.git 
    # Add your Heroku API key: 
    - export HEROKU_API_KEY=KEYHERE 
    # Turn off warnings about SSH keys: 
    - echo "Host heroku.com" >> ~/.ssh/config 
    - echo " StrictHostKeyChecking no" >> ~/.ssh/config 
    - echo " CheckHostIP no" >> ~/.ssh/config 
    - echo " UserKnownHostsFile=/dev/null" >> ~/.ssh/config 
    # Clear your current Heroku SSH keys: 
    - heroku keys:clear 
    # Add a new SSH key to Heroku 
    - yes | heroku keys:add 
    # Push to Heroku! 
    - yes | git push heroku master 

我得到下面的生成錯誤權的開頭:

沒有找到Rake文件(尋找:Rake文件,Rake文件,rakefile.rb, Rakefile.rb)

可能是因爲我的yml文件有問題,它會嘗試使用默認的ruby構建器。

我不認爲該文件是不是因爲我在http://yamllint.com/

有毛病我特拉維斯特定的conf與陽明驗證檢查其有效陽明文件?

package.json看起來是這樣的:

{ 
    "name": "csnc", 
    "description": "csnc", 
    "version": "0.0.1", 
    "private": true, 
    "dependencies": { 
    "express": "3.x", 
    "ejs": ">=0.0.0", 
    "express-partials": ">=0.0.0" 
    }, 
    "engines": { 
    "node": "0.8.x", 
    "npm": "1.1.x" 
    } 
} 

編輯:

如果你正在尋找一種方式來使用特拉維斯-CI的Node.js應用自動部署到Heroku的,尋找答案我包括一個工作.travis.yml文件

+1

您是否在使用NPM?如果是這樣,你的package.json如何? – Odi

+0

@Odi將文件添加到問題 – Michael

+0

如果我沒有錯,如果您將node_js定義爲語言,但您沒有在您的package.json腳本中指定travis,則會調用'npm test':{「test」 :「./my_test_script.js」}'。或者你期望被稱爲什麼? – Odi

回答

6

您的.travis.yml文件不驗證;你可以在http://lint.travis-ci.org/進行驗證。

找到與問題node_js鍵:

檢測到不支持Node.js的版本。有關支持的Node.js版本的多達最新列表,請參閱http://bit.ly/travis-ci-environment

特拉維斯CI文檔嘗試使用0.8.x

+0

感謝您的工具,非常有用。在更改爲'0.8.x後,我仍然遇到了node_js鍵的問題,並且構建結果相同。但是將版本更改爲'0.6'可以解決此問題。特拉維斯在文檔中說0.8支持,所以我不明白 – Michael

+0

我都不是:https://github.com/mozilla/browserid/pull/2238 –

+0

標記爲答案,因爲這是讓我最接近找到問題與我的文件 – Michael

1

出於某種奇怪的原因,我注意到在文件開始處沒有之前有一個空格(我發誓:)。這是導致錯誤的原因。

奇怪的是,當我將節點版本從0.8更改爲0.6時,驗證程序沒有注意到該錯誤。也許這是驗證器中的一個錯誤。

無論如何,我也成功地在自動將我的節點應用程序部署到Heroku。我沒有在網絡上找到關於這個過程的任何文檔(特別是節點),所以我附上了爲我工作的.travis.yml文件。請注意,我沒有添加任何測試我的應用程序,它工作得很好,沒有它:

language: node_js 
node_js: 
    - 0.8 

after_script: 
    # Install the Heroku package (or the Heroku toolbelt) 
    - npm install heroku 
    # Add your Heroku git repo: 
    - git remote add heroku [email protected]:HEROKU_REPO_HERE.git 
    # Add your Heroku API key: 
    - export HEROKU_API_KEY=ENTER_KEY_HERE 
    # Turn off warnings about SSH keys: 
    - echo "Host heroku.com" >> ~/.ssh/config 
    - echo " StrictHostKeyChecking no" >> ~/.ssh/config 
    - echo " CheckHostIP no" >> ~/.ssh/config 
    - echo " UserKnownHostsFile=/dev/null" >> ~/.ssh/config 
    # Download and install Heroku toolbelt locally 
    - wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh 
    # Clear your current Heroku SSH keys: 
    - heroku keys:clear 
    # Add a new SSH key to Heroku 
    - yes | heroku keys:add 
    # Push to Heroku! 
    - yes | git push heroku master 

編輯:

我最近從Travis.ci搬到Drone.io。如果你正在尋找從Github到Heroku的自動部署,你應該檢查一下,它工作的很好,並且更容易設置IMO。

https://drone.io/

+1

哎呀,很高興你知道了。由於heroku事情,我previuosly [描述在另一個答案中的步驟](http://stackoverflow.com/a/12849594/549755)。你可以通過[加密你的'HEROKU_API_KEY']來改進你的腳本(http://stackoverflow.com/questions/9338428/using-secret-api-keys-on-travis-ci/12778315#12778315)。 – Odi

+0

@Odi好點,我正在努力安裝紅寶石和Travis寶石,使這件事情的工作。有更容易的方法嗎 ? – Michael

+0

不是我所知道的。 'gem install tr​​avis'很簡單,我會說。如果你遇到麻煩,你應該在SO上發佈另一個問題。 – Odi

相關問題