Skip to content

Merge pull request #387 from code-zero-to-one/refactor/etc #324

Merge pull request #387 from code-zero-to-one/refactor/etc

Merge pull request #387 from code-zero-to-one/refactor/etc #324

Workflow file for this run

# 도커 허브에 이미지 push 후 서버에 배포하는 방식 (25.10.30 이후)
name: Front Test Server (Develop)
on:
push:
branches:
- develop # develop 브랜치에 push가 발생하면 실행
jobs:
build-and-push-image: # 도커 이미지 빌드 및 도커 허브 push
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: ENV 파일 생성
run: |
echo "NEXT_PUBLIC_API_BASE_URL=${{ secrets.NEXT_PUBLIC_API_BASE_URL }}" > .env
echo "NEXT_PUBLIC_KAKAO_CLIENT_ID=${{ secrets.NEXT_PUBLIC_KAKAO_CLIENT_ID }}" >> .env
echo "NEXT_PUBLIC_GOOGLE_CLIENT_ID=${{ secrets.NEXT_PUBLIC_GOOGLE_CLIENT_ID }}" >> .env
echo "NEXT_PUBLIC_CLARITY_PROJECT_ID=${{ secrets.NEXT_PUBLIC_CLARITY_PROJECT_ID }}" >> .env
echo "NEXT_PUBLIC_GOOGLE_SHEETS_ID=${{ secrets.NEXT_PUBLIC_GOOGLE_SHEETS_ID }}" >> .env
echo "GOOGLE_SERVICE_ACCOUNT_EMAIL=${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }}" >> .env
echo "GOOGLE_PRIVATE_KEY=${{ secrets.GOOGLE_PRIVATE_KEY }}" >> .env
echo "NEXT_PUBLIC_STRAPI_URL=${{ secrets.NEXT_PUBLIC_STRAPI_URL }}" >> .env
echo "NEXT_PUBLIC_TOSS_CLIENT_KEY=${{ secrets.NEXT_PUBLIC_TOSS_CLIENT_KEY }}" >> .env
- name: DockerHub 로그인
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Docker 이미지 빌드 및 push
run: |
docker build -f Dockerfile.dev -t zerooneitkr/frontend:develop .
docker push zerooneitkr/frontend:develop
deploy-image-to-server: # 도커 허브 pull 후 서버에 배포
runs-on: ubuntu-latest
needs: build-and-push-image
steps:
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.LIGHTSAIL_SSH_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -p 9822 -H ${{ secrets.LIGHTSAIL_HOST }} >> ~/.ssh/known_hosts
echo "SSH 설정 완료"
- name: 서버 배포
run: |
ssh -p 9822 -i ~/.ssh/id_ed25519 ${{ secrets.LIGHTSAIL_USER }}@${{ secrets.LIGHTSAIL_HOST }} << EOF
echo "사용하지 않는 컨테이너, 이미지, 네트워크 정리 중 (볼륨제외)..."
sudo docker stop frontend-dev || true
sudo docker rm frontend-dev || true
sudo docker system prune -a -f
# 여기다 도커 컴포즈 파일 갖다놓았기 때문임
cd ~/front/study-platform-client-dev
echo "도커 이미지 pull"
sudo docker pull zerooneitkr/frontend:develop
echo "도커 컴포즈 재시작"
sudo docker compose -f docker-compose.dev.yml up -d --build
echo "테스트 서버 배포 완료"
EOF