Current scanning threshold is set to 20, i.e. it only scan when there are 20 or more actual compilation call.
Only send job notification email to human. Only propagate root commit SHA and message submitted by human.
For Travis CI - when releasing disregard commit message instruction from the last commit being tagged. This is to ensure all CI jobs are run for releasing the artifacts.
[ci package]
However, we still have to temporarily scale back to not perform full CI jobs on PR because PR from fork cannot get the secured variables decrypted and hence no way to create CI mirror branches.
Add checkpoint for Emscripten CI build and use it to determine whether to skip make test and/or scaffolding test when running short of time.
For Travis CI - perform the full CI jobs for topic branches and PRs.
For Travis CI - use custom data in .travis.yml for excluding samples.
Strangely it won't proceed to perform the scan otherwise.
For Travis CI - when performing API documentation update, delayed the creation of CI mirror branches.
The CI mirror branches are now created and deleted on the fly. No more overhead to maintain them (i.e. resolving rebase conflict).
This is partial implementation of what has been requested in this feature request https://github.com/travis-ci/travis-ci/issues/3719.
This is in preparation for using ccache in the container-based CI builds later.
Reinstate MinGW 32-bit D3D9 build jobs which were accidentally got deleted.
Ubuntu 12.04 LTS does not have up-to-date D3D11 headers. Travis CI is long overdue to upgrade their OS. See https://github.com/travis-ci/travis-ci/issues/2046.
It appears that their new container-based build infrastructure is also runs on Ubuntu 12.04 LTS. So, no choice but to disable thos new CI build jobs for now.
Also remove CI build for shared lib type. It is anyway just an emulation as Emscripten does not support dynamic library (yet) and our earlier issue with emar for static lib type has been fully resolved. Test [ci package] for Emscripten.
Add new build options to override 64-bit Linux package setup for Debian and Redhad -based host systems.
For Travis CI - fix 64-bit RPM package generation to install library in /usr/lib64, also fix external project build test using Urho3D library from SDK.
Now this rule is applicable for all target platforms (Linux, Windows, Android, and Raspberry-Pi) which have their CI builds run on Linux/Ubuntu host VM. Mac OSX and iOS CI builds are not affected by this rule since they run on OSX host VM which is not susceptible to "bad VM" issue. The idea is to reduce memory consumption during the linking phase and thus avoiding the process being killed due to insufficient memory in the VM.
The following changes address the shortcomings of our current release mechanism detected from our last release.
- Define and set RELEASE_TAG environment variable only when a git tag conform to a release tagging matching regex "\d+\.\d+".
- Change the logic to allow the automated rake tasks to be triggered on a 'tag' branch properly.
- Fix the 'git rebase' command to use the branch pointed by TRAVIS_BRANCH environment variable as baseline, instead of assuming it to be always 'origin/master' as before.
- Change Urho3D library versioning CMake module to omit the version patch number when there is none, i.e. 1.32 instead of 1.32.0.
These new CI builds will perform the build test on the DirectX code path which is currently not covered in any of our existing CI.
The CI builds should also improve the detection of any breakage caused by build script changes for MinGW compiler.
[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.
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.
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.
- 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.
Straightly speaking ALSA is not required while cross-compiling to other non-Linux targets. However, in the CI build we have enabled Lua or LuaJIT and because of that we have to build some native tool(s). The problem is when configuring native project on a Linux build system, we could not inform our CMake script to ONLY configure for the tool building. Currently the script always attempt to configure most of things including SDL which in turns depends on ALSA, although actually the Lua tool building does not require it.
[ci package]
Occasionally package installation could fail due to timed out or other unknown one-off network issue, using 'travis_retry' wrapper to retry the installation should fix this.
Add -fno-keep-inline-dllexport compiler option when building using MinGW in order to reduce the object size and the link time (and thus hopefully reduce the linker memory consumption as well).
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).
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.