Merge pull request #387 from code-zero-to-one/refactor/etc #324
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 도커 허브에 이미지 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 |