[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).
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.
This process is only carried out when building Doxygen documentation pages in the CI server because those pages are intended to be embedded inside a Jekyll template.
Closes https://github.com/urho3d/urho3d.github.io/issues/3.
Also reverting back the scripting done for one time documentation build.
[ci skip]
- Fix commit message when performing API documentation update.
- Use single process when packaging to prevent make process being killed due to out of memory.
- Use one less process when building samples for MinGW/64-bit/STATIC target due to out of memory.
- Use commit-ish to describe the version number when renaming source package.
Temporary workaround due to Travis-CI insufficient memory when building AssetImporter concurrently with other samples in 64-bit/MinGW/STATIC build configuration.
Replace usage of URHO3D_INSTALL_PREFIX environment variable with the more standard CMake's own CMAKE_PREFIX_PATH environment variable to define prefix path of non-standard SDK installation location.
This is necessary because the last two CI builds have failed for MinGW static library build due to insufficient memory during linking phase.
Also:
- Increase the number of build artifacts being kept in the SourceForge.net.
- Fixes#380 by skipping Mach-O binary (universal library) for iOS 64-bit build. The Urho3D lib in the build artifact will only contain 64-bit arch, 32-bit arch and iphonesimulator are excluded for now to reduce the build time.
- Fix android toolchain to correctly set the library output path when ANDROID_ABI build option changes.
- For Travis CI - download and setup Android SDK on the fly when performing Android packaging.
- Final apk is included in the binary package.
When a release tag is detected in a commit, instruct CI build to perform a released package build that uploaded into release directory instead of Snapshots directory.
[ci package]
- When performing CI build for iOS platform, suppress all warnings. Non-CI build will still receive them.
- Automatically instruct Travis CI to do packaging when AngelScript or LuaScript API have changed.
Additionally, enhance iOS-specific Urho3D_universal custom target to perform initial check to see a rebuild is really necessary.
[ci package]
Travis-CI Ubuntu build environment requires additional software package to generate RPM package.
Travis-CI does not like iOS 64-bit build that generates >4MB log and kills the build process. Workaround by trying to rebuild universal binary quietly, hopefully the rebuild would not exceeds 10 minutes or otherwise Travis-CI would kill the process again for the other reason: no log activity. Finger cross.
- Prevent packaging from being accidentally invoked by a pull request or a commit on non-master branch.
- Generate documentation before packaging if it is not yet generated in previous step.
- When packaging for iOS platform, rebuild Urho3D library as Mach-O universal binary.
- When packaging for Linux platform, also invokes RPM and Debian CPack generators.
- Perform shallow clone when building site documentation to speed up cloning process.
- Perform unshallow pull when packaging so that 'git describe' gives correct commit count since last tag.
- Only perform packaging when all the previous steps are successful. Reduce chances of binary package with not up-to-date documentation.
- When packaging for iOS platform, generate the documentation quietly (no stdout but still stream error to stderr).
Detected by Travis CI build. With this change, FindUrho3D module should be able to find Urho3D libs in the following scenarios:
- only debug version is available
- only release version is available
- both debug version and release version are available
Request CI build to use a Release build configuration [ci package].
The purpose of Urho3D-CMake-common module is to store all the commonly used CMake commands and macros in one place so that they can be reused by other external projects using Urho3D as external library by simply including this module in their own CMakeList.txt.
- Fix finding Urho3D library when only debug version is available.
- Keep the library dependencies in the list as they are, even if that means a same library being listed twice (to fix dynamic library build for Windows platform).
- MinGW cross-compiling toolchain already has PIC flag set by default, so skip setting it one more time (to suppress compiler warnings spam).
Also:
- Enhance generated Eclipse project setting file to additionally use gcc/g++ error parser.
- Enhance cmake_gcc.sh script to fallback to find alternative CMake toolchains directory.
- Enhance Rakefile:
- New scaffolding task to create new project using Urho3D as external library. At the moment only works in Unix-like platforms.
- Build in Debug mode instead of Release mode as it should capture more potential issues.
The API documentation update is expected to fail when remote HEAD moves (i.e. there are new pushes while Travis CI build is in progress). Enhance the script one more time so that it always attempts to update API documentation on every build.
Due to git push failure from detached HEAD, the error log in Travis CI build contains GH_TOKEN for worker account. A new GH_TOKEN is now generated.
Enhance the script so that it does not spit out any output or error when pushing. The script still can rely on command exit status, however.
Also:
- Setup doxygen configuration on the fly to use minimal theme and to produce SVG instead of PNG.
- Change how the GH_TOKEN is supplied as the GIT version in Travis VM (Ubuntu) does not seem to read the credentials from file store correctly.
- Only generate site documentation after the CI build test has passed.
- Add Ubuntu PPA to install a more recent version of Doxygen.