Jak skonfigurować Travis CI z wieloma językami
Mój projekt używa zarówno nodejs jak i Javy
Próbowałem zacząć od kompilacji node_js, a następnie zainstalować Javę (ponieważ jest to moduł npm)
Ale skrypty do instalacji Javy nie powiodły się, poza tym nie wydaje mi się, aby trzeba było ją instalować, gdy istnieje już kompilator z Javą.
Czy powinienem zacząć od kompilacji Javy, a następnie zainstalować węzeł?
I ' m trying this
language: java
- oraclejdk8
language: node_js
node_js:
- "0.10"
Który ignoruje pierwsze 2 linie i buduje node_js build, który ma Javę 7 a mój projekt używa Javy 8
Próbowałem tego odpowiedz dla Pythona
Użycie
language: node_js
node_js:
- "0.10"
java: oraclejdk8
Ale to nie zadziałało
Jak mogę dodać Javę 8?
5 answers
Wydaje się być teraz możliwe, aby uruchomić kilka języków w jednym .travis.plik yml przy użyciu funkcji matrix:include
. Dla przykładu, moje repo na Githubie jest ułożone w następujący sposób:
project/ - top-level github directory
project/backend - Python backend
project/backend/tests - Python tests
project/android/AppName - Android app
project/ios/AppName - iOS app
Oto .travis.yml, który uruchamia testy w Pythonie, Javie i 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]
Wydaje się, że możesz zbudować tyle różnych konfiguracji, ile chcesz za pomocą tej funkcji, traktując każdy wpis w macierzy jako konfigurację najwyższego poziomu. Oczywiście, jeśli masz jakieś parametry, które chcesz ustawić, które dotyczą wszystkich języki, możesz to zrobić na najwyższym poziomie, tak jak robię to tutaj z sekcją notifications:email
.
Kiedy wszystko jest skonfigurowane, to na każdej kompilacji dostajesz coś takiego. Bum.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-18 17:27:25
W środowisku budowania Javy Można używać nvm
do zarządzania węzłem.JS runtimes:
.travis.yml
language: java
jdk:
- oraclejdk8
env:
- NODE_VERSION="0.12"
before_install:
- nvm install $NODE_VERSION
Jeśli Twoja wersja węzła jest bardzo aktualna, być może będziesz musiał również zaktualizować nvm
.
Aby zaktualizować nvm
, napisz to w swoim .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
Powyższy przykład pokazuje, jak najpierw zaktualizować do nvm v0.31
, a następnie uzyskać Node v5
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-13 08:17:09
Użyłem tego .yml
:
language: java
jdk:
- oraclejdk8
node_js: "0.10"
install: "npm install"
script: "npm test"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-26 16:26:52
Nie można dodawać wielu języków, co wyjaśnia zachowanie, które widzisz, a ustawienie node_js
będzie rozpoznawane tylko w projekcie języka węzła. Co możesz zrobić, to wykorzystać włączone nvm
w TravisCI.
Na przykład możesz dołączyć
- nvm install 0.10
- nvm use 0.10
w sekcji before_install
, Aby pobrać najnowszą wersję 0.10.x uwolnienie węzła.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-10 20:07:48
Mój projekt ma backend Pythona / Django i nakładkę js / Vue jak poniżej:
├── backend
│ ├── api
│ │ ├── tests
├── daemon
│ ├── frontend
│ │ ├── test
Ideą jest uruchamianie każdego zestawu testów w zadaniu macierzy, jeden dla testów Python / Django, a drugi dla testów 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
Zobacz też
- Jak działają etapy budowania? official doc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-19 21:33:52