Skip to content

🌐 [Ci] 프론트 배포 스크립트 작성 #5

🌐 [Ci] 프론트 배포 스크립트 작성

🌐 [Ci] 프론트 배포 스크립트 작성 #5

Workflow file for this run

name: Front Ci/Cd
on:
push:
branches:
- develop
- Ci/83
# paths:
# - 'apps/client/**'
jobs:
build:
runs-on: ubuntu-latest
steps:
# GitHub 레포지토리 체크아웃
- name: Checkout
uses: actions/checkout@v2
# Node.js 환경 설정
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '21'
# pnpm 설치
- name: Install pnpm
run: npm install -g pnpm
# 의존성 설치
- name: Install dependencies
working-directory: apps/client
run: pnpm install
# 빌드 실행
- name: Build front-end
working-directory: apps/client
run: pnpm build
# deploy-main:
# runs-on: ubuntu-latest
# needs: build
# steps:
# # GitHub 레포지토리 체크아웃
# - name: Checkout
# uses: actions/checkout@v2
#
# # SSH Key 설정
# - name: Deploy to Server
# uses: appleboy/ssh-action@master
# with:
# host: ${{ secrets.SERVER_IP }}
# username: ${{ secrets.SERVER_USER }}
# key: ${{ secrets.SSH_SERVER_KEY }}
# script: |
# # 빌드된 파일을 서버로 전송
# rsync -avz --delete apps/client/dist/ /var/www/myapp
deploy-main:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@v2
# 빌드 파일을 서버로 전송
- name: Upload files to server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_SERVER_KEY }}
source: "apps/client/dist/*"
target: "/home/ubuntu/myapp" # 임시 위치로 전송
# 서버에서 임시 위치에 있는 파일을 실제 배포 디렉토리로 이동
- name: Deploy to Server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_SERVER_KEY }}
script: |
sudo mkdir -p /var/www/myapp
sudo cp -r /home/ubuntu/myapp/* /var/www/myapp
sudo chown -R www-data:www-data /var/www/myapp
sudo rm -rf /home/ubuntu/myapp