Setting-up GCP Cloud Run deployment using action

Step 1: Create GCP project and enable services for Cloud Run

  1. Cloud Build API

2. Cloud Run API

Step 2: create service account on the GCP project

  • Create Account from IAM & Admin > Service Account

  • Grant Permissions

  • Generate KEY

  • Download Key as json file

Step 3: Update workflow of GitHub action

  • Add Action Secret in the repo


2. GCP_APPLICATION - Name of the service you want



a. Open the Service Account JSON key in VS code

b. select - all (ctrl +a / cmd + a)

c. Execute Global Command (ctrl + shift + p / cmd + shift + p) -> "Join Lines"

Add to GitHub action secret as

  • Create custom workflow in GitHub action

  • Set the Scripts according branch you want to configure deployment for

name: cloudrun-deploy




- main



name: Setup, Build, Publish, and Deploy

runs-on: ubuntu-latest


- name: Checkout

uses: actions/checkout@master

# Setup gcloud CLI

- uses: google-github-actions/setup-gcloud@v0.6.0


service_account_email: ${{ secrets.GCP_EMAIL }}

service_account_key: ${{ secrets.GCP_CREDENTIALS }}

export_default_credentials: true

# Configure Docker with Credentials

- name: Configure Docker

run: |

gcloud auth configure-docker

# Build the Docker image

- name: Build & Publish

run: |

gcloud config set project ${{ secrets.GCP_PROJECT }}

gcloud builds submit --tag${{ secrets.GCP_PROJECT }}/${{ secrets.GCP_APPLICATION }}

gcloud config set run/region us-central1

# Deploy the Docker image to the GKE cluster

- name: Deploy

run: |

gcloud run deploy ${{ secrets.GCP_APPLICATION }} --image${{ secrets.GCP_PROJECT }}/${{ secrets.GCP_APPLICATION }} \

--platform managed \

--allow-unauthenticated \

--memory=1Gi \

--region asia-south2

Commit the file

Push changes and wait for few sconds.

You can navigate to actions and observe action is in progress. take a look at the execution to make sure it won't break.

on successful completion you can see your service is running on GCP cloud run.

You can now use the URL to call the service




I love finding patterns and concluding insights out of it. After working as Employee, a Consultant, a Freelancer I figured out mostly we start our project or a module or microservice either by copying an existing code or base repositories from GitHub lets say. And then spend a lot of time on customising it, analysing pitfalls, making it work so that I can start wrinting business logic for the work. So, I started POC-ing FAB Builder so that I get a trailered project targetted to my requirements and on which I can start wrinting business logic within few mins. This makes my life easy and my clients get a better quality products which are easy to modify and easy to maintain.