blob: fce12afa7e35f529483b57c9c869a036d39a8378 [file] [log] [blame]
# These are the testing and deploy steps for the performance dashboard
# services. We re-use the docker-compose files in the dev_dockerfiles directory
# to ensure we're runing the same test and deploy cycle everytime.
timeout: 1800s # Wait for 30 minutes for the whole process to finish.
options:
diskSizeGb: 100
machineType: 'N1_HIGHCPU_8'
steps:
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args:
- '-c'
- |
docker pull gcr.io/$PROJECT_ID/dashboard-base:latest || exit 0
- name: 'gcr.io/cloud-builders/docker'
dir: 'dashboard/dev_dockerfiles'
args: [
'build',
'-t', 'dashboard-base:latest',
'-t', 'gcr.io/$PROJECT_ID/dashboard-base:latest',
'--cache-from', 'gcr.io/$PROJECT_ID/dashboard-base:latest',
'.'
]
- name: 'gcr.io/$PROJECT_ID/docker-compose'
dir: 'dashboard/dev_dockerfiles'
args: [
'run', 'python-unittest-dashboard'
]
# We need to provide the auth token that the service account is using to the
# container from which we're going to deploy the Dashboard services.
- name: 'gcr.io/$PROJECT_ID/docker-compose'
dir: 'dashboard/dev_dockerfiles'
args: [
'run', 'cloudbuild-prepare-deployment'
]
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: '/bin/bash'
args: [
'-x', '-e', 'dashboard/dev_dockerfiles/cleanup_versions.sh',
'api', 'default', 'pinpoint', 'upload-processing', 'upload'
]
- name: 'gcr.io/cloud-builders/gcloud'
dir: 'deploy-dashboard'
args: [
app, deploy, '--promote', '--version', 'cloud-build-${SHORT_SHA}',
# We enumerate the files we need to deploy just for the dashboard.
# TODO(dberris): Figure out how we can include cron.yaml and dispatch.yaml
# from this automation. This fails in production with the service account
# used by cloud-build, so we've left it out for now.
api.yaml,
app.yaml,
upload-processing.yaml,
upload.yaml,
# Deploy Pinpoint as well.
pinpoint.yaml,
]
images: ['gcr.io/$PROJECT_ID/dashboard-base:latest']