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?

 48
Author: Codiak, 2014-12-25

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.

Tutaj wpisz opis obrazka

 62
Author: Codiak,
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.

 11
Author: Benny Neugebauer,
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"
 6
Author: Amr Draz,
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.

 5
Author: kevincolten,
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ż

 0
Author: Édouard Lopez,
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