# This workflow will build a docker container, publish it to Google Container Registry, and deploy it to GKE when there is a push to the $default-branch branch.
#
# To configure this workflow:
#
# 1. Ensure that your repository contains the necessary configuration for your Google Kubernetes Engine cluster, including deployment.yml, kustomization.yml, service.yml, etc.
#
# 2. Set up secrets in your workspace: GKE_PROJECT with the name of the project and GKE_SA_KEY with the Base64 encoded JSON service account key (https://github.com/GoogleCloudPlatform/github-actions/tree/docs/service-account-key/setup-gcloud#inputs).
#
# 3. Change the values for the GKE_ZONE, GKE_CLUSTER, IMAGE, and DEPLOYMENT_NAME environment variables (below).
#
# For more support on how to run the workflow, please visit https://github.com/google-github-actions/setup-gcloud/tree/master/example-workflows/gke
name:Build and Deploy to GKE
on:
push:
branches:
- $default-branch
env:
PROJECT_ID:${{ secrets.GKE_PROJECT }}
GKE_CLUSTER: cluster-1 # TODO:update to cluster name
GKE_ZONE: us-central1-c # TODO:update to cluster zone
DEPLOYMENT_NAME: gke-test # TODO:update to deployment name
IMAGE:static-site
jobs:
setup-build-publish-deploy:
name:Setup, Build, Publish, and Deploy
runs-on:ubuntu-latest
environment:production
steps:
- name:Checkout
uses:actions/checkout@v2
# Setup gcloud CLI
- uses:google-github-actions/setup-gcloud@v0.2.0
with:
service_account_key:${{ secrets.GKE_SA_KEY }}
project_id:${{ secrets.GKE_PROJECT }}
# Configure Docker to use the gcloud command-line tool as a credential
# helper for authentication
- run:|-
gcloud --quiet auth configure-docker
# Get the GKE credentials so we can deploy to the cluster