Occassionally there could be multiple successive commits causing multiple CI jobs queue up in the Travis CI. Due to latency of each jobs, the jobs may finish not in the same order as the commits. If the CI build happens to be instructed to perform package upload then the uploaded packages may come in not in the right order as the result.
For Travis CI - set the iOS deployment target to 7.0 explicitly but have to bump the OSX deployment target to 10.8 because Travis-CI only have 10.8 and 10.9 SDKs installed.
[ci package]
If the option is not set, Urho3D CMake build script by default configures it to match the currently running OS X version. On Travis-CI that is 10.9 which is too high for binary packaging. Closes#447.
[ci package]
- Simplify the check on environment variable containing the commit-ish used in the 'git describe' command.
- Shuffle the rebase order in 'ci_rebase' rake task, move the OSX-CI rebase to the last as OSX Travis-CI build environment is extremely slow lately (has longer job queue).
- Improve 'android' rake task to only create named AVD for CI test when necessary and to turn off graphics acceleration explicitly when starting the emulator in CI environment.
- Add more memory diagnostics to help in investigation of process being killed by Travis CI upstream issue reported in #430.
Simplify build artifact housekeeping logic as now all the mirror CI branches will produce the same package description as the master branch.
[ci package]
The hard-coded depth=2000 may not be a good estimate of how deep we should go in order to get the last annotated tag. Also move the operation to 'ci' rake task so it can be shared for all the Travis-CI build environments.
Cannot enable hardware acceleration in the Travis CI VM, so just check the sign of Urho3D from being started instead of checking the engine is fully initialized.
This should prevent the similar incident like SONAME breaking Android APK went unnotice for days.
Also:
- Revert back the workaround attempt for the RPI build as it did not work. The build error problem has been reported to Travis-CI upstream issue log.
- Add new rake task to automate Android APK testing (tested on Linux platform only).
Currently there is no permanent solution to the intermittent build environment setup issue. In order to avoid false alarm on the overall build status, this commit temporarily group the git clone step as part of the script run. As such when it exits non-cleanly, it would be treated as build failure instead of build error. But since we have already set the RPI CI build to allow failure, their 'failures' (if it happens) should not affect the overall build status.
Also fix to properly exclude IOS 64-bit test run on OSX CI build environment, but thanks to this mistake we found another bigger mistake in the xcode_build error handling.
- Add Android API level environment variable.
- Prevent unnecessary enabling of CMake testing configuration when the build test cannot be performed for specific target platform.
- Fix missing 'abort' command on a number of error handling branches.
The errors include: git clone error, apt-get update/install error, download error, etc.
The purpose of this refactor is to clearly distinguish between Travis CI build error (caused by error on Travis side) and Travis CI build failure (caused by build or test failure on Urho3D side). Previous setup sometimes allowed build environment in error state to continue to proceed with software building phase due to inefficient branching logic.
- Remove other temporary workaround for MinGW CI build to see if changing to 'Release' build configuration is enough to fix the insufficient memory problem.
- Attempt to fix intermitten network problem when installing software packages for Rasperry-Pi CI build by delaying the massive sysroot git clone to the last. Read this blog (http://blog.travis-ci.com/2013-05-20-network-timeouts-build-retries/) on general network issue plaguing travis-ci.org.