In an effort to make it easier for forks to (a) use their own
API keys (b) change map styles or maybe even providers, move
the MapTiler key out of the source code and pass it in via
env var or property.
Also refactor the utility classes slightly to keep all the URL
related functions together, to reduce the chance of collisions
when maintaining such forks.
* Disable Paparazzi tasks when Kover is running.
It allows us to split the test jobs between unit tests, screenshot test and coverage reports.
* Move Sonar upload to the quality workflow, since we have no lint info in tests.
* Try to improve 'Tests' CI job times
* Remove `-Pci-build=true` for jobs where the debug mode can be explicitly used
* Add some more excluded `*State` values for kover
* Run paparazzi verification at the same time as Kover tasks, otherwise the coverage is lost.
Error was:
Some problems were found with the configuration of task ':koverMergedHtmlReport' (type 'KoverHtmlTask').
- Gradle detected a problem with the following location: '/home/runner/work/element-x-android/element-x-android/features/analytics/api/build/tmp/kotlin-classes/release'.
Reason: Task ':koverMergedHtmlReport' uses this output of task ':features:analytics:api:compileReleaseKotlin' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed.
Possible solutions:
1. Declare task ':features:analytics:api:compileReleaseKotlin' as an input of ':koverMergedHtmlReport'.
2. Declare an explicit dependency on ':features:analytics:api:compileReleaseKotlin' from ':koverMergedHtmlReport' using Task#dependsOn.
3. Declare an explicit dependency on ':features:analytics:api:compileReleaseKotlin' from ':koverMergedHtmlReport' using Task#mustRunAfter.
...
The test was failing in release mode because there is not check on `RoomId` format, so INVITE_LIST value ("invites") is seen as a valid RoomId.
First check for known paths, then try to parse as RoomId. The tryOrNull will return null only in debug mode, so I think we can remove it.
Error was:
value of: getFromIntent(...)
expected: InviteList(sessionId=@alice:server.org)
but was : Room(sessionId=@alice:server.org, roomId=invites, threadId=null)
at io.element.android.libraries.deeplink.DeeplinkParserTest.nominal cases(DeeplinkParserTest.kt:54)