name: Deploy Quartz

on:
  push:
    branches:
      - master # 본인이 사용하는 메인 브랜치명으로 수정하세요

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install & Build
        run: |
          npm ci
          # 1. 빌드 전 확실히 초기화
          rm -rf public
          npx quartz build
          # 2. 'public' 폴더 안으로 들어가서 내용물만 압축 (폴더 자체 제외)
          cd public && tar -czf ../deploy.tar.gz . && cd ..

      - name: Deploy to GCE
        uses: appleboy/scp-action@master
        with:
          host: ${{ secrets.GCE_HOST }}
          username: ${{ secrets.GCE_USERNAME }}
          key: ${{ secrets.GCE_SSH_KEY }}
          source: "deploy.tar.gz"
          target: "/var/www/white-smith-blog"

      - name: Extract Archive on GCE
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.GCE_HOST }}
          username: ${{ secrets.GCE_USERNAME }}
          key: ${{ secrets.GCE_SSH_KEY }}
          script: |
            # 1. 대상 폴더가 없으면 미리 생성 (cd 실패 방지)
            mkdir -p /var/www/white-smith-blog/public
            
            # 2. 폴더 이동에 성공했을 때만(&&) 내부 파일 삭제 및 압축 해제 진행
            cd /var/www/white-smith-blog/public && {
              # 현재 폴더(public) 내의 모든 파일/폴더 삭제 (점 파일 포함)
              find . -mindepth 1 -delete
              
              # 상위 폴더에 전송된 압축 파일 해제
              tar -xzf ../deploy.tar.gz
              
              # 작업 완료 후 압축 파일 삭제
              rm ../deploy.tar.gz
            }