Managing releases of your app

This article discusses best practices for managing releases of Google Chat apps. The specific recommendation depends on which kind of endpoint you are using for your app:

  • HTTP
  • Apps Script
  • Cloud Pub/Sub

Regardless of which endpoint type you use, each instance of a Google Chat app is backed by a single Google Cloud project. We recommend the following practices:

  • Create a different Cloud project for each type of release (such as dev, test, and production)
  • Name your app appropriately
  • Point each app to different endpoints, each representing a different release.

You may find it helpful to badge each app icon with different symbols to quickly differentiate different releases of your app.

HTTP apps

For an HTTP app, you might create three Cloud projects: one pointing to HEAD, for quick iterative development testing, and two more to represent test and production builds.

Project Release App name App URL
1 HEAD Task App (HEAD) http://example.com/api/myapp/head
2 Test Task App (Test) http://example.com/api/myapp/test
3 Production Task App http://example.com/api/myapp/

To move a app down the release cycle, just push the previous release to the existing URL.

For example, suppose you have finished testing an app at http://example.com/api/myapp/test. To release this app to production, just push it to http://example.com/api/myapp/.

Cloud Pub/Sub apps

For Cloud Pub/Sub apps, we recommend the same deployment model as for HTTP apps, with the following addition:

  • Each app release should use its own Cloud Pub/Sub topic.

Apps Script apps

Each instance of an Apps Script app has its own deployment ID and version number.

The HEAD deployment always points to version 0. Each additional deployment ID maps to a different version of your Apps Script app. To manage releases of these apps, create a different Cloud project for each release and then map each deployment ID to the corresponding Cloud project. See the table below for details.

Project Release App name Deployment ID Apps Script version
1 HEAD Task App (HEAD) {Head deployment ID} 0
2 Test Task App (Test) {deployment ID 2} 2
3 Production Task App {deployment ID 3} 3

To move an Apps Script app down the release cycle, you can create a new version by creating a new deployment and choosing New as the version number. You can then update the production app with this new deployment ID.