2012-11-21 62 views
5

मैं ट्रैविस-सीआई में node.js प्रोजेक्ट बनाने की कोशिश कर रहा हूं। मैं सही शुरुआत पर निम्नलिखित निर्माण त्रुटि मिलती हैTravis-ci के साथ node.js प्रोजेक्ट बनाने और तैनात करने में विफल - नो रेकैकाइल

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 

:

नहीं Rakefile पाया यह मेरा .travis.yml फ़ाइल (की तलाश: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

शायद क्योंकि मेरी वाईएमएल फ़ाइल में कुछ गड़बड़ है और यह डिफ़ॉल्ट रूबी बिल्डर का उपयोग करने का प्रयास करता है।

मुझे नहीं लगता कि फ़ाइल मान्य YML फ़ाइल के रूप में मैं कम से http://yamllint.com/

कुछ मेरी ट्रैविस विशिष्ट conf के साथ गलत YML सत्यापनकर्ता के साथ यह जाँच की है नहीं है?

मेरे 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" 
    } 
} 

संपादित करें:

आप एक तरह से करने के लिए देख रहे हैं स्वचालित रूप से, ट्रैविस-सीआई का उपयोग कर Heroku को Node.js एप्लिकेशन को तैनात जवाब देखने के लिए मैं एक काम करने के लिए .travis.yml फ़ाइल

+1

क्या आप एनपीएम का उपयोग कर रहे हैं? यदि हां, तो आपका पैकेज.जेसन कैसा दिखता है? – Odi

+0

@ ओडीआई ने – Michael

+0

पर फ़ाइल को जोड़ा, यदि मैं गलत ट्रैविस नहीं हूं तो आप node_js को भाषा के रूप में परिभाषित करते हैं, लेकिन आपने अपने पैकेज.जेसन 'स्क्रिप्ट्स "में निर्दिष्ट नहीं किया है: {" 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

पर ट्रैविस सीआई दस्तावेज़ देखें 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 से नोड संस्करण बदल रहा था तो सत्यापनकर्ता ने त्रुटि नहीं देखी। शायद यह वैधकर्ता में एक बग है।

वैसे भी, मैं में भी अपने नोड ऐप की तैनाती को स्वचालित रूप से हेरोोक पर तैनात कर रहा हूं। मुझे इसे करने की प्रक्रिया (विशेष रूप से नोड के लिए) के संबंध में वेब के आसपास कोई दस्तावेज नहीं मिला है, इसलिए मैं .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 

संपादित करें:

मैं हाल ही में Drone.io को Travis.ci से चले गए हैं। यदि आप गितूब से हेरोोकू में स्वचालित तैनाती की तलाश में हैं, तो आपको इसे देखना चाहिए, यह बहुत अच्छा काम करता है और आईएमओ स्थापित करना आसान था।

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

@ ओडीआई अच्छा बिंदु, मैं इस काम को काम करने के लिए रूबी और ट्रैविस मणि स्थापित करने के साथ संघर्ष कर रहा हूं। क्या कोई आसान तरीका है ? – Michael

+0

मुझे नहीं पता कि। 'मणि इंस्टॉल ट्रैविस' मैं कहूंगा कि बहुत आसान है। यदि आपको इसके साथ परेशानी हो रही है, तो आपको SO पर एक और प्रश्न पोस्ट करना चाहिए। – Odi