Skip to content

Merge main (#210)

Merge main (#210) #5

Workflow file for this run

name: Continuous Deployment Pipeline
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
-
name: Login to GCR
uses: docker/login-action@v3
with:
registry: gcr.io
username: _json_key
password: ${{ secrets.GCR_SERVICE_ACCOUNT_KEY }}
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Set up Google Cloud SDK
uses: google-github-actions/setup-gcloud@v2
with:
version: '>= 363.0.0'
service_account_key: ${{ secrets.GCR_SERVICE_ACCOUNT_KEY }}
project_id: ${{ secrets.GCP_PROJECT_ID }}
export_default_credentials: true
- name: Auth With GCP
uses: 'google-github-actions/auth@v2'
with:
credentials_json: '${{ secrets.GCR_SERVICE_ACCOUNT_KEY }}'
- name: Build and push Docker image to Artifact Registry
env:
ARTIFACT_REGISTRY_REGION: ${{ secrets.GCP_REGION }}
REGION: "${{ secrets.GCP_REGION }}"
GAR_LOCATION: ${{ secrets.GCP_REGION }}-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.REP_IMG_NAME }}
run: |
gcloud auth configure-docker ${{ env.REGION }}-docker.pkg.dev --quiet
docker build -t ${{ secrets.GCP_REGION }}-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.REP_IMG_NAME }}/${{ secrets.REP_IMG_NAME }} .
docker tag ${{ secrets.GCP_REGION }}-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.REP_IMG_NAME }}/${{ secrets.REP_IMG_NAME }} ${{ secrets.GCP_REGION }}-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.REP_IMG_NAME }}/${{ secrets.REP_IMG_NAME }}:$GITHUB_SHA
docker push ${{ secrets.GCP_REGION }}-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.REP_IMG_NAME }}/${{ secrets.REP_IMG_NAME }}:$GITHUB_SHA
docker push ${{ secrets.GCP_REGION }}-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.REP_IMG_NAME }}/${{ secrets.REP_IMG_NAME }}:latest
- name: Deploy to Cloud Run
run: |
gcloud run deploy ${{ secrets.REP_IMG_NAME }} \
--image=${{ secrets.GCP_REGION }}-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.REP_IMG_NAME }}/${{ secrets.REP_IMG_NAME }} \
--update-env-vars REACT_APP_FIREBASE_API_KEY=${{ secrets.FIREBASE_API_KEY }} \
--platform=managed \
--port=${{ secrets.PORT }} \
--region=${{ secrets.GCP_REGION }} \
--allow-unauthenticated \