2016-03-25 11 views
6

Ho provato molte cose, ma alla fine non sono riuscito a ottenere la build per gulp-pipeline-rails in esecuzione. Il script viene eseguito localmente, nessun problema.travis-ci ruby ​​build con il nodo 5

L'ultimo problema che ho ristretto è che ho un progetto di lingua ruby che utilizza il nodo, ma I need node 5. Ho trovato one snippet:

#------------------------------ 
# Update the node version 
env: 
    - TRAVIS_NODE_VERSION="5" 

install: 
    - pwd 
    - rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && (cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`) && source ~/.nvm/nvm.sh && nvm install $TRAVIS_NODE_VERSION 
    - npm install 

Anche se questo sembra per ottenere il nodo aggiornato, fa qualcosa al mio rubino ENV dove fails to execute rspec:

$ pwd && bundle exec rake 
/home/travis/build/alienfast/gulp-pipeline-rails 
Could not find gem 'rspec' in any of the gem sources listed in your Gemfile or available on this machine. 
Run `bundle install` to install missing gems. 

Domanda Con tutto ciò che ha detto, come devo semplicemente usare il Nodo 5 con questo .travis.yml?

language: ruby 
rvm: 
    - 2.2.2 
    - ruby-head 

matrix: 
    allow_failures: 
    - rvm: ruby-head 

cache: bundler 

#------------------------------ 
# Setup 
before_script: 
    - node -v 
    # update npm 
    - npm install npm -g 

    # install Gulp 4 CLI tools globally from 4.0 GitHub branch 
    - npm install https://github.com/gulpjs/gulp-cli/tarball/4.0 -g 

#------------------------------ 
# Build 
script: bundle exec rake 

risposta

6

Provare a usare una fase before_install per adding a second language su Travis, forse qualcosa di simile:

before_install: 
    - nvm install node 

nvm deve essere installato per impostazione predefinita sul Travis costruire l'immagine (a seconda di quale si sta utilizzando), e questo comando installerà l'ultima versione di Node.

Dopodiché, è sufficiente avere come primo passo nel tuo stage before_script (ad esempio, non preoccuparti di aggiornare npm), si spera che ciò significhi che bundler funziona ancora correttamente e installa tutte le tue gemme.

0

Se la lingua del progetto è ruby, Travis CI eseguirà bundle install --jobs=3 --retry=3 per impostazione predefinita.

Se si definisce uno stage install da soli in .travis.yml, the default will not execute in favor of the newly specified commands. Il pensiero qui è di avere una magia normale di default che dovrebbe essere facilmente ignorata.

ci sono due soluzioni a questo problema:

  1. Aggiungi bundle install --jobs=3 --retry=3 al install fase
  2. Rinominare l'intestazione del frammento di sostituzione nodo before_install come suggerito da @ocean.
2

Ho trovato this article che mi ha aiutato un po '.

informazioni rilevanti da articolo:

È possibile utilizzare nvm per gestire voi versioni nodo Travis, tuttavia bisogna abilitarlo in anticipo:

install: 
    - . $HOME/.nvm/nvm.sh 
    - nvm install stable 
    - nvm use stable