Skip to content

changes for BE CI/CD. #12

changes for BE CI/CD.

changes for BE CI/CD. #12

name: Build and Deploy to Google Cloud Run
on:
workflow_dispatch:
pull_request:
paths:
- "server/**"
- ".github/**"
permissions:
id-token: write
contents: read
jobs:
build_and_deploy:
runs-on: ubuntu-latest
env:
PROJECT_ID: ${{ secrets.PROJECT_ID }}
APP: chatterbox
REGION: asia-south1
GAR_LOCATION: asia-south1
steps:
- name: "Checkout Server Code"
uses: actions/checkout@v4
with:
sparse-checkout: server
- name: "Google Auth"
uses: "google-github-actions/auth@v2"
with:
workload_identity_provider: "${{ secrets.WIF_PROVIDER }}"
service_account: "${{ secrets.WIF_SERVICE_ACCOUNT }}"
- name: "Set up Cloud SDK"
uses: "google-github-actions/setup-gcloud@v1"
with:
project_id: "${{ secrets.PROJECT_ID }}"
- name: "Docker auth"
run: |-
gcloud auth configure-docker ${{ env.GAR_LOCATION }}-docker.pkg.dev
- name: "Build and push container"
run: |-
docker build -t "${{ env.GAR_LOCATION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.APP }}/${{ env.APP }}:${{ github.sha }}" ./server
docker push "${{ env.GAR_LOCATION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.APP }}/${{ env.APP }}:${{ github.sha }}"
- name: "Create release name"
run: |-
echo "RELEASE_NAME=${{ env.APP }}-${GITHUB_SHA::7}-${GITHUB_RUN_NUMBER}" >> ${GITHUB_ENV}
- name: "Cloud Run Release"
id: "deploy"
uses: "google-github-actions/deploy-cloudrun@v2"
with:
service: "chatterbox-kunal-staging"
image: ${{ env.GAR_LOCATION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.APP }}/${{ env.APP }}:${{ github.sha }}
region: ${{ env.GAR_LOCATION }}
- name: "Use output"
run: 'curl "${{ steps.deploy.outputs.url }}"'