c35c042afa
방어스크립트로 변경
59 lines
1.8 KiB
YAML
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
|
|
} |