-
Notifications
You must be signed in to change notification settings - Fork 111
Continuous Integration
The OpenOrienteering Mapper and Superbuild Github repositories use continuous integration via Azure Pipelines on:
https://dev.azure.com/OpenOrienteering/Mapper
Builds are triggered automatically for commits to regular branches and for pull requests. Pull requests build results are reported back to Github as "Check" results.
"Collaborators" may trigger builds for pull requests manually from comments with the following command:
/AzurePipelines run
Build | Android armv7 | macOS | Linux clazy | Linux coverage | Windows mingw32 | Windows mingw64 | Linux MinGW |
---|---|---|---|---|---|---|---|
Target OS | Android | macOS 10.13 | Ubuntu 16.04 | Ubuntu 16.04 | Windows | Windows | Windows |
Target Arch | arm v7 | x64 | x64 | x64 | x32 | x64 | x64 |
Cross build host OS | macOS 10.13 | Ubuntu 16.04 | |||||
SDK | NDK r18b | XCode 10.1 | Ubuntu | Ubuntu | MSYS2 | MSYS2 | Ubuntu MinGW |
Compiler | clang | AppleClang | clazy 1.5 | gcc 5.4.0 | gcc 9.1.0 | gcc 9.1.0 | gcc 5.3.1 |
Libraries | Superbuild | Superbuild | Superbuild | Superbuild | mingw32 | mingw64 | Superbuild |
Qt | 5.12 | 5.12 | 5.12 | 5.12 | 5.12 | 5.12 | 5.12 |
Generator | Unix Makefiles | Unix Makefiles | Unix Makefiles | Ninja | MSYS Makefiles | MSYS Makefiles | Unix Makefiles |
Config | Release | Release | RelWith DebInfo | Debug+Coverage | Release | Release | Release |
Sanitzer | no | no | no | ubsan | no | no | no |
Tests run | no | yes | yes | yes | yes | yes | no |
Licensing | Superbuild | Superbuild | Superbuild | Superbuild | Superbuild | Superbuild | --- |
Packaging | APK | DMG | deb | deb | ZIP | ZIP | ZIP |
The CI build creates an unsigned APK. Before installing to a device, it must be signed. Developers may use their developer certificate, which is usually protected by the passphrase android
:
$ SDK_APTH/build-tools/VERSION/apksigner sign --ks ~/.android/debug.keystore install-release-unsigned.apk
CI scripts are stored in the ci
directory. Each pipeline has some configuration variables which may be edited permanently or when queueing manually.
The Superbuild repository CI build creates "Pipeline Artifacts" with all dependencies for building Mapper for Android arm-v7 (on macOS), macOS, Ubuntu 16.04 and Windows (MinGW). The Mapper repository CI downloads these artifacts, thus limiting the build time to Mapper itself. Tests are run for the native builds (macOS, Ubuntu, Windows). The actual "buildId" of the superbuild pipeline artifacts is a configuration variable in the Mapper pipeline. It should refer to a build which is released to Github (i.e. has its sources published) and is retained on Azure.