Skip to content

Commit

Permalink
Merge branch 'SAH-49-CICD' into test-cicd
Browse files Browse the repository at this point in the history
  • Loading branch information
aatalrashid committed Jan 10, 2024
2 parents 97f4370 + 8e1cb4b commit c1dca31
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 1 deletion.
78 changes: 78 additions & 0 deletions .github/workflows/website-production.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Website Production

on:
push:
branches: ['main']
# check which application has been changed
paths:
- 'apps/website/**'
- '.github/workflows/website-production.yml'


env:
REGION: "us-east1"
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
GCP_SA_KEY: ${{ secrets.GCP_SA_KEY }}
GCP_PROJECT_NUMBER: ${{ secrets.GCP_PROJECT_NUMBER }}
SERVICE: "sahil-website-production"

jobs:
build:
name: Build - Push - Deploy
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [18.x]

outputs:
output1: ${{ steps.step1.outputs.IMAGE }}

steps:
- name: Clone
uses: actions/checkout@v3
id: step1
- run: |
echo "IMAGE=gcr.io/${{ env.GCP_PROJECT_ID }}/sahil-website:production-$GITHUB_SHA" >> $GITHUB_ENV
# GCP auth & image pushing
- name: Authenticate the service account
uses: google-github-actions/auth@v1
with:
credentials_json: '${{ env.GCP_SA_KEY }}'

- name: Install gcloud on the job runner
uses: google-github-actions/setup-gcloud@v1
with:
service_account_key: '${{ env.GCP_SA_KEY }}'
project_id: '${{ env.GCP_PROJECT_ID }}'
export_default_credentials: true

- name: Authorize admin account to push docker image
run: gcloud auth configure-docker

- name: Use gcloud CLI
run: 'gcloud info'

- name: Build a docker image
run: |-
docker build -f infra/docker/Dockerfile.website -t ${{ env.IMAGE }} .
- name: Push image to gcr.io
run: docker push ${{ env.IMAGE }}

- name: Deploy to Cloud Run
id: deploy
uses: google-github-actions/deploy-cloudrun@v0
with:
service: ${{ env.SERVICE }}
region: ${{ env.REGION }}
image: ${{ env.IMAGE }}
# NOTE: env variables here
# env_vars: |
# NODE_ENV=production
# PORT=3000

# If required, use the Cloud Run url output in later steps
- name: Show Output
run: echo ${{ steps.deploy.outputs.url }}
2 changes: 1 addition & 1 deletion .github/workflows/website-staging.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Website test Stagging to Cloud Run
name: Website Stagging

on:
push:
Expand Down

0 comments on commit c1dca31

Please sign in to comment.