2014-12-25 17 views
18

Il mio progetto utilizza sia nodejs e javaCome impostare Travis-CI con più lingue

Ho provato a partire con un node_js build quindi l'installazione di Java (dal momento che questo è un modulo NPM)

ma gli script per installare java non sono riusciti, inoltre non credo che sia necessario installarlo quando esiste una build con java che esiste già.

dovrei iniziare con una build java quindi installare il nodo?

sto cercando questo

language: java 
    - oraclejdk8 
language: node_js 
node_js: 
    - "0.10" 

che ignora le prime 2 righe sembra e costruisce un accumulo node_js che ha Java 7 e il mio progetto utilizza Java 8

ho provato questo answer per Python

utilizzando

language: node_js 
node_js: 
    - "0.10" 
java: oraclejdk8 

ma non ha funzionato

Come posso aggiungere java 8?

+0

correlati: https://stackoverflow.com/questions/18456611/is-it-possible-to-set-up-travis-to-run-tests-for-several-languages ​​ – dmcc

risposta

4

ho usato questo .yml:

language: java 
jdk: 
    - oraclejdk8 
node_js: "0.10" 
install: "npm install" 
script: "npm test" 
6

non è possibile aggiungere più lingue, il che spiega il comportamento che state vedendo, e l'impostazione node_js sarà riconosciuto solo in un progetto linguistico nodo. Quello che puoi fare è utilizzare lo nvm incorporato in TravisCI. Ad esempio, è possibile includere - nvm install 0.10 - nvm use 0.10 nella sezione before_install per scaricare l'ultima release v0.10.x del nodo.

+0

ma io è riuscito a farlo con il file di configurazione a cui ho risposto autonomamente con –

7

In un ambiente di compilazione Travis Java, è possibile utilizzare per gestire nvmNode.js tempi di esecuzione:

.travis.yml

language: java 

jdk: 
    - oraclejdk8 

env: 
    - NODE_VERSION="0.12" 

before_install: 
    - nvm install $NODE_VERSION 

Se la versione del nodo è molto recente, potrebbe essere necessario aggiornare nvm troppo.

Per aggiornare nvm, scrivere questo nella vostra .travis.yml:

before_install: 
    - wget https://raw.githubusercontent.com/creationix/nvm/v0.31.0/nvm.sh -O ~/.nvm/nvm.sh 
    - source ~/.nvm/nvm.sh 
    - nvm install 5 # for Node v5 
    - node --version 

L'esempio sopra mostra come aggiornare primo a nvm v0.31, per poi ottenere Node v5.

+0

Questa è la mia soluzione preferita. – Natim

23

Sembra possibile ora eseguire più lingue in un file .travis.yml utilizzando la funzione matrix:include. Ad esempio, il mio repository Github è organizzato come segue:

project/ - top-level github directory 
project/backend - Python backend 
project/backend/tests - Python tests 
project/android/AppName - Android app 
project/ios/AppName - iOS app 

Ecco il .travis.yml, che esegue i test in Python, Java e Objective-C:

matrix: 
    include: 
    - language: python 
     python: 2.7 
     before_script: 
     - cd backend/tests 
     script: 
     - python -m unittest discover 

    - language: android 
     jdk: oraclejdk8 
     android: 
     components: 
      - tools 
      - android-25 
      - build-tools-25.0.3 
     before_script: 
     - cd android/AppName 
     script: 
     - ./gradlew build connectedCheck 

    - language: objective-c 
     os: osx 
     osx_image: xcode8.3 
     before_script: 
     - cd ios/AppName 
     script: 
     - xcodebuild -workspace AppName.xcworkspace -scheme AppName 
      -destination 'platform=iOS Simulator,name=iPhone 7,OS=10.3' build test 

notifications: 
    email: 
    - [email protected] 

Sembra si può costruire come molte configurazioni diverse come ti piace usare questa funzione, trattando ogni voce nella matrice come configurazione di livello superiore . Ovviamente, se hai parametri da impostare che si applicano a tutte le lingue, puoi farlo al livello più alto, come faccio qui con la sezione notifications:email.

Quando è tutto impostato, quindi su ogni build, si ottiene qualcosa di simile. Boom.

enter image description here

+0

Sembrava promettente, ma fallisce lo strumento travis: http://lint.travis-ci.org – meisteg

+0

Non riesco a parlare con lo strumento lan, ma posso dire che ho usato una configurazione come questa per diversi mesi ora, e ha funzionato perfettamente. – Codiak

+0

Soluzione fantastica grazie! – Mirodinho

Problemi correlati