Deploying to mobile isn't as transparent as web: every Connect update nags the user to install it. Continuous delivery like that doesn't offer us the possibility to let builds accumulate until a release, saving user's data and giving us time to rollback when problems arise.
Currently, with our new in-house MDM solution, we don't have a way to control which builds get deployed to Android devices, all builds are consumed by Connect mobile clients as soon as they are uploaded to Nitro and the client downloads them.
In order to postpone the deployment of a build, I propose the following approach.
The clients remain the same, consuming the /latest endpoint.
A column is added to the releases table:
should_release BOOLEAN DEFAULT FALSE
The endpoint code gets a new WHERE clause selecting only the latest build that has should_release=TRUE.
In order to control the value of should_release, we have two options:
- Label the PR on github as "should_release", that value is available while building, and can be sent as parameter while uploading the build to Nitro MDM.
- Have a page where you can view all builds and check it off for release, possibly integrate with Runway.