diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3557888..85d10da 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,9 @@ -name: 빌드 자동화 - +name: 빌드 자동화 + on: push: branches: - - main - - feat/cicd + - dev jobs: build: @@ -14,39 +13,13 @@ jobs: - name: Checkout code uses: actions/checkout@v2 - - name: Set up Node.js (언어 환경) + - 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 + node-version: '20' - name: Install dependencies - run: npm ci + run: npm install - name: Run build - env: - NODE_ENV: production - run: npm run build -- --mode production - - - 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 + run: npm run build \ No newline at end of file diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml new file mode 100644 index 0000000..e2aa423 --- /dev/null +++ b/.github/workflows/cicd.yml @@ -0,0 +1,52 @@ +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: Install dependencies + run: | + npm install + npm install tailwindcss@latest postcss@latest autoprefixer@latest + npm install --save-dev @types/node + + - name: Create .env file # env 파일 생성 단계 추가 + run: | + echo "VITE_GA_MEASUREMENT_ID=${{ secrets.VITE_GA_MEASUREMENT_ID }}" > .env + + - name: Run build + run: npm run build # 프로젝트에 맞는 빌드 명령어 + + - 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 diff --git a/package.json b/package.json index 5d910ff..fd4b2a7 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "build": "vite build --mode production", "lint": "eslint .", "preview": "vite preview", - "start": "vite --port 3000" + "start": "vite --port 3000 --mode production" }, "dependencies": { "@tailwindcss/vite": "^4.0.3",