Merge pull request #137 from Soohyuniii/fix/production-mode #75
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
| name: 빌드 자동화 | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - feat/cicd | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v2 | |
| - name: Set up Node.js (언어 환경) | |
| uses: actions/setup-node@v2 | |
| with: | |
| node-version: "20" | |
| - name: Create .env.production file | |
| run: | | |
| echo "MODE=production" > .env.production | |
| echo "VITE_GA_MEASUREMENT_ID=${{ secrets.VITE_GA_MEASUREMENT_ID }}" >> .env.production | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run build | |
| run: npm run build -- --mode production | |
| - name: Verify Build Mode | |
| run: | | |
| grep -r "production" dist/assets/*.js | grep "import.meta.env.MODE" | |
| - name: Debug .env.production file | |
| run: cat .env.production || echo ".env.production not found" | |
| - name: Docker build & push | |
| run: | | |
| docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | |
| docker build -t ${{ secrets.DOCKER_USERNAME }}/embitips_front . | |
| docker push ${{ secrets.DOCKER_USERNAME }}/embitips_front | |
| - name: Deploy to GCP | |
| uses: appleboy/ssh-action@master | |
| with: | |
| host: ${{ secrets.HOST_PROD }} | |
| username: ${{ secrets.USERNAME }} | |
| key: ${{ secrets.PRIVATE_KEY }} | |
| script: | | |
| sudo docker stop embitips_front || true | |
| sudo docker rm embitips_front || true | |
| sudo docker pull ${{ secrets.DOCKER_USERNAME }}/embitips_front | |
| sudo docker run -d -p 3000:3000 --name embitips_front ${{ secrets.DOCKER_USERNAME }}/embitips_front | |
| sudo docker image prune -f |