41 lines
No EOL
1.2 KiB
YAML
41 lines
No EOL
1.2 KiB
YAML
on: [push]
|
|
jobs:
|
|
print-content:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Run uname
|
|
run: uname -a
|
|
|
|
- name: checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Bun
|
|
uses: oven-sh/setup-bun@v2
|
|
|
|
- name: Install rsync
|
|
run: |
|
|
sudo apt-get update && sudo apt-get install -y rsync openssh-client
|
|
# act 내부 컨테이너와 호스트 간의 workspace 권한 불일치 방지
|
|
chown -R $(id -u):$(id -g) $GITHUB_WORKSPACE
|
|
|
|
- name: Setup SSH Key
|
|
run: |
|
|
# 격리된 임시 보안 디렉토리에 SSH 키 생성 (컨테이너 이탈 방지)
|
|
mkdir -p ~/.ssh
|
|
echo "${{ secrets.SSH_KEY }}" > ~/.ssh/id_rsa
|
|
chmod 600 ~/.ssh/id_rsa
|
|
|
|
- name: Build
|
|
run: |
|
|
bun i
|
|
bun run build
|
|
|
|
- name: Deploy
|
|
run: |
|
|
# dist 폴더 경로를 $GITHUB_WORKSPACE 기준으로 절대 경로 명시
|
|
rsync -avz --delete -e "ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no" "$GITHUB_WORKSPACE/dist/" imnyang@10.11.8.101:/var/static/imnya.ng/
|
|
|
|
- name: Cleanup
|
|
if: always()
|
|
run: |
|
|
rm -rf ~/.ssh/id_rsa |