We use bitrise for CI. Pull requests from within
the project (and pushes to master) are automatically built, while PRs from forks must be approved to protect
secrets and prevent abusing the build server.
A build will do a few things:
- Build a universal APK and make it available for download under "Artifacts"(
nightlyDebug). - Run tests
- Unit tests are run (and results are available) right in bitrise under "Tests".
- If these fail, the checks on the Pull Request will automatically fail.
- Espresso tests are run in Browserstack App Automate on real devices.
- While the logs will show summary results, including failures, the build will not fail nor will github's UI show this failure (see bug report on this issue)
- Unit tests are run (and results are available) right in bitrise under "Tests".
- Make the app available for testing on real devices via Browserstack.
- Accessing this requires a login to our browserstack account.
Bitrise builds can require secrets. In our case, the secrets are our Browserstack credentials. Thus, before kicking off a build for a PR, be sure that PR isn't trying to log our credentials from environment variables.