Fix CD workflow using cloudbuild.yaml (#637)

* Fix variable substitutions in CD workflow and gcloud build config

* Docker needs everything lowercase

* Store container image in GCR

* Don't use GITHUB_REPOSITORY
This commit is contained in:
Deirdre Connolly 2020-07-10 07:37:54 -04:00 committed by GitHub
parent 8b5ec155f0
commit 56361654c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 15 deletions

View File

@ -4,7 +4,7 @@ on:
push:
branches:
- main
- gcloud
- cloudbuild
env:
PROJECT_ID: zealous-zebra
@ -20,13 +20,12 @@ jobs:
- name: Set project and image names
run: |
SHORT_BRANCH_NAME=$(expr $GITHUB_REF : '.*/\(.*\)') && \
SHORT_BRANCH_NAME=${SHORT_BRANCH_NAME,,} && \
BRANCH_NAME=$GITHUB_REPOSITORY/$SHORT_BRANCH_NAME && \
BRANCH_NAME=$(expr $GITHUB_REF : '.*/\(.*\)') && \
BRANCH_NAME=${BRANCH_NAME,,} && \
echo "::set-env name=SHORT_BRANCH_NAME::$SHORT_BRANCH_NAME" && \
REPOSITORY=${GITHUB_REPOSITORY,,} && \
echo "::set-env name=BRANCH_NAME::$BRANCH_NAME" && \
echo "::set-env name=SHORT_SHA::$(git rev-parse --short=7 $GITHUB_SHA)"
echo "::set-env name=SHORT_SHA::$(git rev-parse --short=7 $GITHUB_SHA)" && \
echo "::set-env name=REPOSITORY::$REPOSITORY"
# Setup gcloud CLI
- name: Set up gcloud Cloud SDK environment
@ -42,13 +41,13 @@ jobs:
run: |
gcloud builds submit \
--config cloudbuild.yaml \
--substitutions SHORT_SHA="$SHORT_SHA"
--substitutions SHORT_SHA="$SHORT_SHA",BRANCH_NAME="$BRANCH_NAME"
# Create instance template from container image
- name: Create instance template
run: |
gcloud compute instance-templates create-with-container "zebrad-$SHORT_BRANCH_NAME-$SHORT_SHA" \
--container-image "gcr.io/$PROJECT_ID/$BRANCH_NAME:$SHORT_SHA" \
gcloud compute instance-templates create-with-container "zebrad-$BRANCH_NAME-$SHORT_SHA" \
--container-image "gcr.io/$PROJECT_ID/$REPOSITORY/$BRANCH_NAME:$SHORT_SHA" \
--machine-type n1-highmem-8 \
--service-account cos-vm@zealous-zebra.iam.gserviceaccount.com \
--scopes cloud-platform \
@ -77,15 +76,15 @@ jobs:
id: does-group-exist
continue-on-error: true
run: |
gcloud compute instance-groups list | grep "zebrad-$SHORT_BRANCH_NAME"
gcloud compute instance-groups list | grep "zebrad-$BRANCH_NAME"
# Deploy new managed instance group using the new instance template
- name: Create managed instance group
if: steps.does-group-exist.outcome == 'failure'
run: |
gcloud compute instance-groups managed create \
"zebrad-$SHORT_BRANCH_NAME" \
--template "zebrad-$SHORT_BRANCH_NAME-$SHORT_SHA" \
"zebrad-$BRANCH_NAME" \
--template "zebrad-$BRANCH_NAME-$SHORT_SHA" \
--health-check zebrad-tracing-filter \
--initial-delay 30 \
--region us-central1 \
@ -96,6 +95,6 @@ jobs:
if: steps.does-group-exist.outcome == 'success'
run: |
gcloud compute instance-groups managed rolling-action start-update \
"zebrad-$SHORT_BRANCH_NAME" \
--version template="zebrad-$SHORT_BRANCH_NAME-$SHORT_SHA" \
"zebrad-$BRANCH_NAME" \
--version template="zebrad-$BRANCH_NAME-$SHORT_SHA" \
--region us-central1 \

View File

@ -1,6 +1,8 @@
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/$PROJECT_ID/zcashfoundation/$REPO_NAME/$BRANCH_NAME:$SHORT_SHA', '.']
args: ['build', '-t', 'gcr.io/$PROJECT_ID/zcashfoundation/zebra/$BRANCH_NAME:$SHORT_SHA', '.']
images: ['gcr.io/$PROJECT_ID/zcashfoundation/zebra/$BRANCH_NAME:$SHORT_SHA']
options:
machineType: 'N1_HIGHCPU_32'