现在似乎可以使用 matrix:include 功能在一个.travis.yml文件中运行多种语言 . 举个例子,我的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
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 部分一样 .
当它全部设置好后,在每个构建中,你都会得到这样的东西 . 繁荣 .