Кажется, теперь можно запускать несколько языков в одном файле .travis.yml, используя эту matrix:include
функцию. Например, мое репо на Github устроено следующим образом:
project/ - top-level github directory
project/backend - Python backend
project/backend/tests - Python tests
project/android/AppName - Android app
project/ios/AppName - iOS app
Вот .travis.yml, запускающий тесты на Python, Java и 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:
- yourname@gmail.com
Похоже, вы можете создать столько разных конфигураций, сколько захотите, используя эту функцию, рассматривая каждую запись в матрице как конфигурацию верхнего уровня. Конечно, если у вас есть какие-либо параметры, которые вы хотите установить, применимые ко всем языкам, вы можете сделать это на верхнем уровне, как я сделал здесь с notifications:email
разделом.
Когда все настроено, то при каждой сборке вы получаете что-то вроде этого. Бум.