The .appveyor.yml file is altering between normal and MinGW CI build so it is not suitable to be used as cache invalidator, although what we originally want to achieve was "just" to monitor the MinGW version environment variable in the .appveyor.yml file of the MinGW CI build.
[ci only: master, MinGW, Android]
Change the task execution order. Now upload samples first then perform packaging build, if it is required. The artifacts may have been ruined after the packaging build.
[ci only: Web]
It appears that peoples are expecting this instead. Previously the samples were only uploaded during "packaging" build which is only triggered whenever there is "big" code changes.
[ci only: Web]
The uninstalling step suddenly stop working today, probably due to a system upgrade on Travis-CI side. Need to further investigate what went wrong. Hopefully by skipping this step the VM still has enough free disk space for packaging build on OSX CI.
[skip appveyor] [ci only: OSX]
The old snapshots were not being removed in the correct order due to a bug in the housekeeping logic. Since we have more build artifacts per build now, reduce to only keep the build artifacts from the lasts 10 builds instead of 30.
Also generate 64-bit ARM RPM package using 'lib64' (suitable for RH/Fedora) for completeness sake.
[ci package]
When cross-compiling we have already defined '--sysroot' to find the direct library dependencies. However when a shared library has its own dependencies (DT_NEEDED) then we need to supply extra linker flags to help the linker to find those indirect library dependecies in the sysroot.
Actually we also had this problem for 32-bit ARM cross-compiling, but we cheated in the earlier CI build jobs by using Linaro/Raspbian compiler toolchain. Somehow the Raspbian's linker simply "ignores" those indirect library dependencies or it uses other mean to locate them (but I doubt that), and so it does not have linker issues with libreadline.so (depends on tinfo), libGLESv2.so (depends on glapi), etc. The other ARM compiler toolchains from Linaro seem to be more strict in this regard. Most likely the raspbian's linker is a gold linker.
This commit could also potentially fix a known issue in our FindUrho3D.cmake module where we have to hardcode the library dependencies that libUrho3D.so in turn depends on (to be investigated later).
Travis CI is not able to find the matching cache file in their cache store for the newly created CI mirror branches for new topic branch. As the result, the initial CI jobs run without the benefit of the ccache. For OSX and iOS universal binary builds, this would usually cause our custom interrupt mechanism to be triggered. To avoid that, when cache size is 0 then we configure the build system to only build for 64-bit arch. Basically half the number of archs in the universal build.
For CI - switch all the Android CI jobs to use Clang compiler toolchian instead of GCC compiler toolchain. The old GCC 4.9 is not able to handle C++11 standard for AS wrapper. Besides, the latest change log in Android NDK has marked GCC as deprecated and recommended developers to migrate to Clang.
1. Switch back to use Travis-CI internal cache store for Android and OSX CI builds. Travis-CI team has enhanced their cache key computation so that each CI job "by default" should get a unique key and as such there is no more need to use our "compiler key hack". The enhancement also makes the switch possible.
2. Disable secondary AppVeyor CI and reenable testing of 39_CrowdNavigation sample in primary AppVeyor CI.
Our internal cache store (backed by GitHub repository) will be decommissioned shortly after this.
Perhaps we should enhance the buildsystem to only exclude certain sample from being test run but still build the sample so it still ends up in the build artifact.
Switch the build output verboseness to normal as the diagnostic mode also does not help to reveal any additional information on the crowd navigation sample when it segfaulted during test.
Account for differences between Travis (which has built-in cache uploading support) and AppVeyor (which uses cmd "shell" that does not handle the '&&' operator at the end of the command correctly), we have to invoke the last 'ci_timer' rake task differently.
The SIP (aka rootless) feature prevents our script to setup the ccache for Clang. This will be a big problem in the future. The universal binary build on OSX and iOS platforms are only made possible with the help of ccache, on some cases we are just barely made it within the 50 minutes time limit. If the ccache cannot be setup due to SIP then we have to rethink everything.
[ci only: OSX] [skip appveyor]
Since the ctest -VV does not reveal anything useful in troubleshooting the 39_CrowdNavigation demo, attempt to increase the verbosity of msbuild output to see it could reveal anything useful.
Revert previous changes to do a force push on the 'git subtree add' rake task as it is quite dangerous to do so. Trade off the convenience to prevent potential accident to lose the subtree branch due invalid operation.
Bitten by ancient Ubuntu 12.04 LTS again. Its Rake/yaml module still uses old convention to output "non-specific tag" in front of value with reserved yaml symbols although they are already escaped in quotes.
Related to #1200.
Fall back to use Raspbian Wheezy again as Jessie has problem to build SDL library. However, the new Wheezy sysroot is now preinstalled with PulseAudio development library.
[ci skip]
For Travis CI - Speed up the CI builds on Mac OSX VM by removing build test for 32-bit OSX build. All OSX since Lion are 64-bit only.
[ci only: Emscripten, OSX] [skip appveyor]
Bump up the OSX deployment target all the way to El Capitan as this newer OSX image does not have the lower SDK version installed.
Attempt to fix a cp permission issue.
[ci skip appveyor] [ci only: OSX]
It turns out that RefactoringTool and RefactoringCallback classes are not made for each other.
For Travis CI - attempt to push the annotated source files into a new branch. DO NOT check out from this branch, instead just use GitHub GUI to browse through the changes.
[ci only: Annotate]
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.