Mon projet utilise à la fois nodejs et Java
J'ai essayé de démarrer avec une construction node_js puis d'installer Java (puisqu'il s'agit d'un module npm)
mais les scripts à installer Java ont échoué. De plus, je ne pense pas qu'il soit nécessaire de l'installer lorsqu'il existe une version avec Java qui existe déjà.).
dois-je commencer avec un Java build puis installer le noeud?
J'essaye ça
language: Java
- oraclejdk8
language: node_js
node_js:
- "0.10"
qui semble ignorer les deux premières lignes et construit une construction node_js qui a Java 7 et mon projet utilise Java 8
J'ai essayé ceci réponse pour python
en utilisant
language: node_js
node_js:
- "0.10"
Java: oraclejdk8
mais ça n'a pas marché
Comment puis-je ajouter Java 8?
J'ai utilisé ceci .yml
:
language: Java
jdk:
- oraclejdk8
node_js: "0.10"
install: "npm install"
script: "npm test"
Il semble maintenant possible d’exécuter plusieurs langues dans un fichier .travis.yml à l’aide de la commande matrix:include
fonctionnalité. A titre d'exemple, mon dépôt Github est organisé comme suit:
project/ - top-level github directory
project/backend - Python backend
project/backend/tests - Python tests
project/Android/AppName - Android app
project/ios/AppName - iOS app
Voici le fichier .travis.yml, qui exécute des tests en Python, Java et Objective-C:
matrix:
include:
- language: python
python: 2.7
before_script:
- cd backend/tests
script:
- python -m unittest discover
- language: Android
dist: trusty
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]
Il semble que vous puissiez créer autant de configurations différentes que vous le souhaitez à l'aide de cette fonctionnalité, en traitant chaque entrée de la matrice comme une configuration de niveau supérieur. Bien sûr, si vous souhaitez définir des paramètres qui s'appliquent à toutes les langues, vous pouvez le faire au niveau supérieur, comme je le fais ici avec le notifications:email
section.
Une fois que tout est configuré, à chaque construction, vous obtenez quelque chose comme ça. Boom.
Sur un environnement de construction Travis Java, vous pouvez utiliser nvm
pour gérer Node.js runtimes:
. travis.yml
language: Java
jdk:
- oraclejdk8
env:
- NODE_VERSION="0.12"
before_install:
- nvm install $NODE_VERSION
Si votre version de Node est très récente, vous devrez peut-être également mettre à jour nvm
.
Pour mettre à jour nvm
, écrivez ceci dans votre .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'exemple ci-dessus montre comment mettre à jour d'abord vers nvm v0.31
, pour obtenir ensuite Node v5
.
Mon projet a un backend Python/Django et une interface JS/Vue comme ci-dessous:
├── backend
│ ├── api
│ │ ├── tests
├── daemon
│ ├── frontend
│ │ ├── test
L'idée est d'exécuter chaque suite de tests dans un matrice , l'un pour les tests Python/Django et l'autre pour les tests JS:
matrix:
include:
- language: python
python:
- 3.4
before_install:
- cd backend/
install:
- pip install -r requirements.txt
script:
- python manage.py test
- language: node_js
node_js:
- 4.8
before_install:
- cd daemon/frontend
install:
- yarn install
script:
- yarn test
notifications:
email: false
Vous ne pouvez pas ajouter plusieurs langues, ce qui explique le comportement que vous observez, et le node_js
paramètre ne sera reconnu que dans un projet de langage de nœud. Ce que vous pouvez faire, c'est utiliser l'incorporation nvm
dans TravisCI. Par exemple, vous pouvez inclure - nvm install 0.10 - nvm use 0.10
dans votre before_install
section pour télécharger la dernière version v0.10.x du noeud.