* Adds screenshot tests using Roborazzi (Robolectric Native Graphics)
- Adds Roborazzi to convention plugins
- Adds Screenshot helper in :core-testing
- Creates screenshot suites for :app and :feature-foryou
* CI and spotless
* Moves :app tests to testDemo and makes NiaAppScreenSizesScreenshotTests prettier
* CI: Moves local tests to their own step
* CI: Adds --rerun to screenshot task
* CI: Moves screenshots before local tests
* CI: Fixes wrong if statement in workflow
* CI WIP: trying to trigger the push step
* CI: Re-enables roborazzi verification
* Fixes flaky screenshot tests by setting LocalInspectionMode on
* CI: screenshot commits now use the original author intead of bot account
* CI: Disables globbing because file_pattern didn't work
* CI: Trying new file pattern for png files
* CI: Adds a check for forks
* 🤖 Updates screenshots
* Code review: toml cleanup, comments
* Use new github.event.pull_request.head.repo.fork
Co-authored-by: Simon Marquis <contact@simon-marquis.fr>
* Uses Robolectric qualifiers to set the dpi, adds section to README
* Spotless
* Delegates creation of repository to Hilt in test
* Revert "Use new github.event.pull_request.head.repo.fork"
* 🤖 Updates screenshots
* Empty commit to trigger GHA on main branch
* Makes time zones deterministic in screenshot tests
* Increases GMD timeout to 90m, but it has to be reduced
---------
Co-authored-by: Simon Marquis <contact@simon-marquis.fr>
- Add `--no-parallel --max-workers=1` (was not able to trigger the error locally whit this combination).
- Remove useless `cleanManagedDevices` as devices are not persisted across runs.
- Rename test reports artifact to `test-reports-GMD` similar to `test-reports-${{ matrix.api-level }}`.
- Print disk space usage in case of failure.
- Create `LintConventionPlugin` to configure Lint on all compatible modules: Android applications, Android libraries and JVM modules.
- Run `lintProdRelease` in CI instead of the default `lintDemoDebug` which is less important compared to production code.
- Rearrange CI steps to make it more clear that Lint should is an additional step after build (build -> test -> lint).
- Enable SARIF support and upload results to GitHub's CodeQL to get inline feedback on PRs.
If we really need better perfs, we could restore `lint.checkDependencies = true` on the `:app` module and only execute `:app:lintProdRelease`.
But in practice, this does not change the total build time on this project.
- Add all generated lint reports (only app was archived)
- Add all unit tests reports (none were archived)
- Add all APKs (missing app-nia-catalog) and remove unnecessary files (logs, sdkDependencies, proguard's config/mapping/seeds etc. which are also quite large compared to APKs)
- Fixes missing tests reports from `AndroidCIWithGmd.yaml`
```
Warning: No files were found with the provided path: '**/*/build/reports/androidTests/'. No artifacts will be uploaded.
```
- Fixes missing tests reports from `Build.yaml`, where only top-level tests from `:app` were reported.
Enables Gradle configuration cache.
Fix "no name set for build-config" warning.
Fix printing of test APKs due to AGP 7.3 changes
Change-Id: I65ec0cb9eba3d047417fc512ffeb66d378ba0c75
Using gradle/gradle-build-action which takes care of caching, we can remove the custom checksum calculation and files.
Change-Id: I190e4f911f6fa70199fd75a7335df12983157516