Skip to content

Android App Deployment (EN)

Thanh-Son-Philippe Lam edited this page Apr 5, 2019 · 33 revisions

This document is a WIP.

Currently, the deployment of the beta flavor is done automatically by Travis-CI and Gradle Play Publisher.

The release process

The release process starts when a commit is made on master. Even the though the process is automated, human intervention is still needed to update the release notes published on the Play Store. The app's release notes are stored here. Before committing on master, the release notes and should be changed. If not, the previous release notes will be used.

Here are the steps done by Gradle Play Publisher and Travis-CI to release the beta version:

Step 1: Commit on master

The process starts when a commit is made to master. A build is normally run by Travis according the travis.yml file. If the build succeeded, Travis will also execute the deploy block which simply execute the deploy_beta.sh script.

Step 2: Decrypt secret files

The deploy_beta.sh script will start by decrypting and placing the following files in the right directory:

  • google-services.json: A config file used for Firebase
  • secrets.xml: A file containing API keys used by the app to access various API's such as Google Maps or Buglife.
  • etsm_upload_ks.jks: The keystore containing the upload key
  • keystore.properties: A keystore peroperty file that contains the path to the keystore, the keystore's password, the upload key's alias and the upload key's password. Those information are used in the signingConfigs block of the app's build.gradle
  • service_account_credentials_beta.json: A file containing the private key of the service account used by Gradle Play Publisher to access the Play Developer API

Step 3: Publish on the Play Store

The deploy_beta.sh script will run the publishBetaReleaseApk Gradle command which will deploy on the Play Store. After a moment, the update should be available to the users.

What about the production version?