Skip to content

Update Deployment.yml #41

Update Deployment.yml

Update Deployment.yml #41

Workflow file for this run

name: CI / CD
on:
push:
branches: [release]
jobs:
build:
runs-on: ubuntu-latest
env:
GCP_PROJECT_ID: ${{ secrets.GCE_PROJECT_ID }}
IMAGE_NAME: play-qr-fe
IMAGE_TAG: ${{ github.sha }}
steps:
- name: 코드 체크아웃
uses: actions/checkout@v3
- name: Google Cloud SDK 설정
uses: "google-github-actions/auth@v2"
with:
credentials_json: ${{ secrets.GCE_SA_KEY }}
- name: Docker를 위한 gcloud 인증 설정
run: gcloud auth configure-docker --quiet
- name: Docker 이미지 빌드 및 푸시
run: |
docker build \
--build-arg REACT_APP_SENTRY_DSN=${{ secrets.REACT_APP_SENTRY_DSN }} \
--build-arg REACT_APP_WEB_DOMAIN=${{ secrets.REACT_APP_WEB_DOMAIN }} \
--build-arg REACT_APP_KAKAO_SHARE_DOMAIN=${{ secrets.REACT_APP_KAKAO_SHARE_DOMAIN }} \
--build-arg REACT_APP_KAKAO_SDK_KEY=${{ secrets.REACT_APP_KAKAO_SDK_KEY }} \
--build-arg REACT_APP_KAKAO_TEMPLATE_ID=${{ secrets.REACT_APP_KAKAO_TEMPLATE_ID }} \
--build-arg REACT_APP_IMAGE_FILE_LIMITATION=${{ secrets.REACT_APP_IMAGE_FILE_LIMITATION }} \
--build-arg REACT_APP_API_URL=${{ secrets.REACT_APP_API_URL }} \
-t gcr.io/${{ env.GCP_PROJECT_ID }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} .
docker push gcr.io/${{ secrets.GCE_PROJECT_ID }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}
deploy:
runs-on: ubuntu-latest
needs: build
env:
GCP_PROJECT_ID: ${{ secrets.GCE_PROJECT_ID }}
IMAGE_NAME: play-qr-fe
IMAGE_TAG: ${{ github.sha }}
DEPLOY_PATH: ${{ secrets.DEPLOY_SERVER_PATH }}
steps:
- name: 배포 서버에 SSH로 연결하여 배포
uses: appleboy/[email protected]
with:
host: ${{ secrets.DEPLOY_SERVER_HOST }}
username: ${{ secrets.DEPLOY_SERVER_USER }}
key: ${{ secrets.DEPLOY_SSH_KEY }}
envs: GCP_PROJECT_ID, IMAGE_NAME, IMAGE_TAG, DEPLOY_PATH
script: |
cd ${DEPLOY_PATH}
sudo docker stop ${IMAGE_NAME}
sudo docker rm ${IMAGE_NAME}
sudo docker login -u _json_key --password-stdin https://gcr.io <<< '${{ secrets.GCE_SA_KEY }}'
sudo docker pull gcr.io/${GCP_PROJECT_ID}/${IMAGE_NAME}:${IMAGE_TAG}
sudo docker run -d --name ${IMAGE_NAME} -p 3000:3000 gcr.io/${GCP_PROJECT_ID}/${IMAGE_NAME}:${IMAGE_TAG}
sudo docker network connect compose_app-network ${IMAGE_NAME}