TheSmiths / ts.boilerplate

[unmaintained] Quickly set up bases and tools needed for a good Titanium app dev
9 stars 3 forks source link

Travis build failing on Android #3

Open tlenclos opened 9 years ago

tlenclos commented 9 years ago

It seems that the android bin is not in the path https://travis-ci.org/tlenclos/PhotoTrip/jobs/66371647

Any idea ?

KtorZ commented 9 years ago

Yep. It's because of the "cd PhotoTrip" or, more exactly, because I have been a bit lazy on where to put the android sdk. The script assumes and foresees that the sdk will be present at the root of the project which is wrong when we change the directory right before the installation of the sdk.

I'll fix the problem a bit later, for now, replace the related section in your travis file and it should work :

before_install:
    - export ANDROID_HOME=$PWD/PhotoTrip/android-sdk-macosx
    - export ANDROID_SDK=$ANDROID_HOME
    - export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
    - cd PhotoTrip

Thanks for the report by the by :)

tlenclos commented 9 years ago

Seems almost ok for Android,

Calabash tests are running on iOS, but for android it seems to hang https://travis-ci.org/tlenclos/PhotoTrip/builds/67160636.

KtorZ commented 9 years ago

Hey, first of all, it seems that you didn't update your project with the new gulpfiles. It corrects some important issues with the runner. On the other hand ... android is.. well... android :/ I am facing a lot of trouble managing the emulator with travis. Sometimes it does not boot (nobody knows why), some other times, it does not unlock or, more exactly, it relocks the screen which prevent calabash from running the test. It is also likely to not answer to calabash queries (rarely). This is why, for the moment, I allow failure on Android until I find a better way (if any exist?) to communicate with the emulator. Besides, I am currently looking at how to set up GenyMotion in the integrated environment which will speed up a bit the process for android. Things are not easy; GenyMotion is running in it's own VM (a VM in a VM for travis, VMception!) ... As I don't know exactly what kind of virtualisation is used by Travis, I don't know if it's even possible to get another VM to run inside the existing one.