Skip to content

Continuous Integration

phyllers edited this page Sep 22, 2016 · 2 revisions

We use Circle CI for our continuous integration and deployment

Setup

You should be able to simply turn on building for the repository and configure the environment variables for Circle CI. Once you've done that, the system will automatically build each commit to GitHub and run the tests for the system.

Also see the Development Environment Variables page

Continuous Deployment Environment Variables

Variable Description
CLOUDSDK_CORE_DISABLE_PROMPTS Disables CloudSDK prompts during gcloud commands
GAE_PRIVATE_KEY_ID Private Key ID from Google App Engine privatekey.json file. Required for deployment
GAE_PRIVATE_KEY Private Key from Google App Engine privatekey.json file. Required for deployment
GAE_CLIENT_EMAIL Client Email from Google App Engine privatekey.json file. Required for deployment
GAE_CLIENT_ID Client ID from Google App Engine privatekey.json file. Required for deployment
GAE_PROJECT_ID Project ID being deployed to
GCLOUD_BUCKET Google Cloud Storage Bucket to pull configuration files from

Deployment Files

You'll also need to either add staging files to an existing Google Cloud Storage Bucket or create a new one for these files. Your bucket will need to contain the following files:

Filename Description
staging.env The environment file with variables that will be used on a staging deployment of the system
staging-ssl/client-cert.pem The DB Servers SSL Client Cert should be placed in a staging-ssl/ folder
staging-ssl/client-key.pem The DB Servers SSL Client Key should be placed in a staging-ssl/ folder
staging-ssl/server-ca.pem The DB Servers SSL Server CA should be placed in a staging-ssl/ folder

How deployment happens

  • All code pushes to a branch will trigger a build.
  • CircleCI will run what is in the circle.yaml file. Only certain branches will actually trigger a deployment.