Testing and CI strategy
We evaluated a few different CI solutions and currently CircleCI seems to be the best option for what we want to do.
- opensource project can get up to 4 concurrent builds, for free
- it is easy to setup and fully automated
- it allows us to build, test and store the build results easily
The only drawback is that it is based upon Github. We have setup an extra repository to do more tests.
Currently we can :
- have automatic builds upon each commit in each branch of the repository
- run automated routing tests using dbus, and capture a screenshot and gpx / geojson output of the result
- build binary packages ready for use. It's currently working for Android, for example.
What is left to do ?
- expand our set of test cases
- build packages for more different platforms
- figure out how to get svn sync'ed back automatically
Ressources available during a build
- 32x Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
- 4GB of RAM
- ~ 550GB of disk space
- a single task cannot exceed 2 hours. This is causing issue for maptool. As a workaround, we have split the world in different zones, and had to sub-divide Europe in even smaller parts.