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 }