Any errors from this build stage will then automatically stop all the subsequent stages. This is applicable for PR too.
[ci only: master] [skip appveyor]
Since our past assumptions of what is necessary and what is working may no longer valid now due to changes from Travis and from upgraded versions of the software we use, also due to the removal of the number of archs being included in our build, the build matrix setup is simplified without the past speed improvement and workaround scripts. We may modify our setup again depends on the need in the future CI builds.
[skip appveyor] [ci only: OSX]
Something has changed in the Travis Mac build environment and/or ccache that break our (hack) setup. So. temporarily switch ccache off until we can figure out what went wrong.
This is to fix packaging build on OSX build environment where they were running out of time in the absense of the pre-cache stage.
[ci package] test that it does not trigger on a branch.
Perform housekeeping at the last stage when all the build jobs in the build stage have completed.
Add a placeholder for new lint stage in primary CI.
Use alternate mirror branch to prevent technical error due to multiple commits being pushed to HEAD on slow moving build queues.
Close#1942.
From the past few CI builds the fastcomp occasionally produced stack dump or other errors. Probably it requires more memory for this build configuration.
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]