2012-11-21 11 views
5

Sto provando a creare un progetto node.js in travis-ci. questo è il mio .travis.yml di file:Impossibile creare e distribuire il progetto node.js con Travis-ci - No Rakefile trovato

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 

ottengo il seguente errore di generazione proprio sul principio:

No Rakefile trovato (alla ricerca di: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

Probabilmente perché c'è qualcosa di sbagliato nel mio file yml e tenta di utilizzare il ruby ​​builder predefinito.

Non credo che il file non è valido il file yml come ho controllato con yml validatore a http://yamllint.com/

Qualcosa non va nel mio conf specifica Travis?

mio package.json assomiglia a questo:

{ 
    "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" 
    } 
} 

EDIT:

Se siete alla ricerca di un modo per distribuire automaticamente app node.js di Heroku utilizzando Travis-CI, cercare la risposta Ho incluso per un file .travis.yml funzionante

+1

Stai utilizzando NPM? Se è così, come è il tuo package.json? – Odi

+0

@Odi ha aggiunto il file alla domanda – Michael

+0

Se non sbaglio, travis chiamerà 'npm test' se definisci node_js come lingua, ma non hai specificato nel tuo pacchetto.json' "script": {"test" : "./my_test_script.js"} '. O cosa ti aspetti di essere chiamato? – Odi

risposta

6

Il file .travis.yml non viene convalidato; puoi convalidarlo allo http://lint.travis-ci.org/.

Trovato un problema con il node_js chiave:

versioni non supportate Node.JS rilevato. Per un elenco aggiornato delle versioni Node.JS supportate, consultare la documentazione Travis CI a http://bit.ly/travis-ci-environment

Provare a usare 0.8.x.

+0

grazie per lo strumento, molto utile. dopo aver cambiato in '0.8.x' ho ancora un problema con la chiave node_js ei risultati di compilazione sono gli stessi. Cambiare la versione in' 0.6' tuttavia lo risolve. Travis dice nella documentazione che 0.8 è supportato quindi non capisco – Michael

+0

Né io: https://github.com/mozilla/browserid/pull/2238 –

+0

Contrassegnare questo come la risposta perché questo è quello che mi ha fatto più vicino a trovare il problema con il mio file – Michael

1

Per qualche strana ragione, ho notato un singolo spazio all'inizio del file che non c'era prima (giuro :). Questo è ciò che deve aver causato l'errore.

La cosa strana era che quando stavo cambiando la versione del nodo da 0.8 a 0.6 il validatore non ha notato l'errore. Forse è un bug nel validatore.

In ogni caso, sono anche riuscito in automatizzando la distribuzione della mia app nodo su Heroku. Non ho trovato alcuna documentazione sul web per quanto riguarda il processo di esecuzione (in particolare per il nodo), quindi allego il file .travis.yml che ha funzionato per me. Si noti che non ho avuto da aggiungere alcun test per la mia app, ha funzionato bene senza di essa:

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 

EDIT:

Ho recentemente spostato da Travis.ci a Drone.io. Se stai cercando una distribuzione automatica su Heroku da Github, dovresti verificarlo, funziona alla grande ed è stato più facile impostare IMO.

https://drone.io/

+1

Oh scatto, felice che tu l'abbia capito. A causa della cosa del genere, in precedenza ho descritto [i passaggi in un'altra risposta] (http://stackoverflow.com/a/12849594/549755). Potresti migliorare i tuoi script [crittografando il tuo 'HEROKU_API_KEY'] (http://stackoverflow.com/questions/9338428/using-secret-api-keys-on-travis-ci/12778315#12778315). – Odi

+0

@Odi buon punto, sto lottando con l'installazione di ruby ​​e travis gem per far funzionare questa cosa. C'è un modo più semplice? – Michael

+0

Non che io sappia. 'gem install travis' è abbastanza facile direi. Se hai problemi con questo, dovresti pubblicare un'altra domanda su SO. – Odi

Problemi correlati