Files
2026-04-10 11:48:51 +09:00

59 lines
1.8 KiB
YAML

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
}