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.
...
I created 2 additional test users to use them as MXID we lookup during room creation.
I.e. we will not login as those users, it's just 2 known MXIDs that we know exist so we can look them up.
- https://github.com/vector-im/element-x-android/issues/409
If the gradle build fails for some reason, the script should
bail out instead of carrying on and pushing a commit that
deletes all the screenshots[1]!
`set -e` simply makes the script return the appropriate
exit code immediately if any of the subcommands fails.
[1] e.g.
a58834240e
Uses https://github.com/nschloe/action-cached-lfs-checkout where we're using git-lfs.
This is a wrapper around `actions/checkout@v3` which uses `actions/cache@v3` to cache the files on LFS to avoid downloading them every time and spare LFS bandwidth.
Move the dependency check job from the quality workflow that
runs on every PR to the nightly reports workflow. This sometimes
flakes as it does a _lot_ of HTTP requests. It's less intrusive
if that happens outside of the PR workflow.
Also change the nightly job that runs tests to use LFS, so it
actually has access to screenshots :)
The sonar task is still broken, but it seems like an upstream bug:
https://community.sonarsource.com/t/sonar-plugin-4-1-0-3113-4-2-0-3129-errors/91568
* Update the Rust SDK to v0.1.7.
* Try to have the same setup for the build apk job and maestro.
* Add option to run maestro manually.
* Update to v0.1.9 (0.1.7 and 0.1.8 were broken in x86_64).
* Update AGP to 8.0.0.
* Set JAVA_HOME to JDK17
* Update lint version.
* Use right JDK for dependency analysis, replace deprecated env var.
* Upgrade to Gradle 8.1.
* Remove `@Supress(DSL_SCOPE_VIOLATION)` as it's no longer needed.
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>