6
votes

I currently have an Android project using gradle and integrated with travis.ci which has different productFlavors and buildTypes. When the "connectedCheck" task is then executed on travis.ci, it tries to package all build variants (all combinations of flavors and types). Some of them fail as the release builds need password input which I can't automate at the moment. Is there a way to tell travis.ci to build and test only a certain build variant of an Android project?

2
I suppose it's possible. You just probably need to specify the tasks for variants that You'd like to be built - not for all variants. How is the build process invoked with travis?Opal
run gradle tasks and you will see tasks related to each combination of flavour/type. So in your travis build only run these specific tasksEugen Martynov
Thx, running a connectedAndroidTest<productFlavor><buildType>t task instead of connectedCheck seems to do the trick.Micky
Also, I had to set the assemble task in the install section of the .travis.yml:Micky
install: - TERM=dumb ./gradlew -s assemble<productFlavor><buildType>Micky

2 Answers

6
votes

Say you only want to run the product flavor Trial and the build type Debug.

Instead of running ./gradlew assemble connectedCheck, which is similar to what you're doing, run this instead:

./gradlew assembleTrialDebug connectedCheckTrialDebug
1
votes

So here's how I made it work: Run a connectedAndroidTest<productFlavor><buildType> task instead of connectedCheck. Also set the assemble task in the install section of the .travis.yml:

install: - TERM=dumb ./gradlew -s assemble<productFlavor><buildType>