2013-11-21 11 views
5

Ho bisogno di usare grunt durante l'installazione del mio progetto. Ho bisogno di node.js> = 0.8 per quello. ma la versione inclusa in una VM python in Travis CI è la 0.6.Come posso aggiornare node.js e installare grunt/bower in un progetto python in Travis CI?

Ho provato a scaricare gli ultimi binari e inserirli nel PERCORSO ma non ho potuto esportare correttamente la variabile, e se l'ho modificata utilizzando il parametro env: di travis non avrebbe avuto il resto del PERCORSO.

Se utilizzo direttamente i binari (./node-v0.10.22-linux-x64/bin/npm install ...), li installerò in ./node-v0.10.22-linux-x64/bin/ e quando voglio usare grunt, chiamerà bower (una delle attività) ma fallirà. (Errore irreversibile: impossibile eseguire git checkout e6f8a58dbce5858586564a1ba4543f122ef63225, codice di uscita di # 128).

Quindi, qual è la soluzione migliore per aggiornare node.js e installare i binari ho bisogno di usarli in Travis CI?

+0

Sei sicuro della versione del nodo su Travis? L'ambiente di compilazione è stato aggiornato ieri, ma non lo ricordo utilizzando 0,6 in più di un anno. – nschonni

+0

Ecco una parte dell'errore mostrato da npm in caso di errore: npm ERR! node -v v0.6.12 npm ERR! npm -v 1.1.4 – Gagaro

+0

Credo che tu possa usare NVM per cambiare le versioni correttamente, ma non citarlo su questo. PS 0.10.22 avrebbe dovuto essere spedito il 20 – nschonni

risposta

4

Ecco una versione modificata della configurazione di Travis che sto utilizzando. I passaggi per ottenere il nodo installato sono adattati da node's install docs. Questo metodo installerà l'ultima versione stabile del nodo.

language: python 
python: 
    - "2.7" 
    - "3.3" 

install: 
    # Python test requirements 
    - pip install -r requirements.txt 
    - pip install nose coverage selenium 

    # JavaScript test requirements 
    - sudo add-apt-repository -y ppa:chris-lea/node.js 
    - sudo apt-get -y update 
    - sudo apt-get -y install nodejs 
    - sudo npm install -g grunt-cli 
    - sudo npm install -g bower 
    - sudo npm install 

before_script: 
    - bower install 

script: 
    # Run Python tests and generate coverage statistics 
    - nosetests --with-coverage 

    # Run tests for JavaScript 
    - grunt test 

# etc., etc. 
+0

Molto meglio del mio, grazie! – Gagaro

+0

@mjumbewu Questo non funziona per me, c'è la v0.10.36 prima e dopo: https://github.com/hugovk/test/blob/upgrade-node/.travis.yml https://travis-ci.org/hugovk/test/jobs/166663128 – Hugo

+0

Ho trovato un modo più semplice: http://stackoverflow.com/a/39973978/724176 – Hugo

0

Ho un file Travis lavoro ora, ma io non sono molto contento di questo soluzioni:

language: python 
python: 2.7 
install: 
    - sudo apt-get -qq install libfreetype6-dev liblcms1-dev libwebp-dev memcached 
    - wget http://nodejs.org/dist/v0.10.22/node-v0.10.22-linux-x64.tar.gz 
    - tar xzvf node-v0.10.22-linux-x64.tar.gz 
    - sudo ./node-v0.10.22-linux-x64/bin/npm install -g bower grunt-cli 
    - mkdir -p buildout-cache/eggs 
    - mkdir -p buildout-cache/downloads 
    - python bootstrap.py -c travis.cfg 
    - bin/buildout -N -c travis.cfg install download install 
    - bin/buildout -N -c travis.cfg 
    - cd path/to/resources/folder 
    - sudo ../../../../node-v0.10.22-linux-x64/bin/npm install 
    - ../../../../node-v0.10.22-linux-x64/bin/bower install 
    - ../../../../node-v0.10.22-linux-x64/bin/grunt 
    - cd - 

ho corretto l'errore nel pergolato cambiando l'obiettivo di master (da uno specifico commit id). Non so perché non funziona su Travis ma funziona localmente.

0

Travis CI di Trusty beta viene fornito con "Un'immagine mega che sarà contiene quasi tutti (che presto saranno tutti) i nostri tempi di esecuzione e servizi comunemente supportati."

Per usarlo, aggiungere questo al vostro .travis.yml:

sudo: required 
dist: trusty 

Ad esempio:

sudo: required 
dist: trusty 

language: python 

python: 
- 'pypy' 
- 'pypy3' 
- '2.6' 
- '2.7' 
- '3.2' 
- '3.3' 
- '3.4' 
- '3.5' 

script: 
    - python --version 
    - node --version 

Al momento della scrittura, questo contiene Nodo V4.1.2 invece di v0. 10.36.

Problemi correlati