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.