Skip to content

배포 v1.7.11

배포 v1.7.11 #67

Workflow file for this run

name: Deploy to EC2 (MLOps)
on:
push:
branches: [main]
paths:
- 'MLOps/**'
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Deploy to EC2
uses: appleboy/[email protected]
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
CLICK_LOG: ${{ secrets.CLICK_LOG }}
DEEPFM_TRAIN_MODEL_PATH: ${{ secrets.DEEPFM_TRAIN_MODEL_PATH }}
DEEPFM_TRAIN_ENCODERS_PATH: ${{ secrets.DEEPFM_TRAIN_ENCODERS_PATH }}
DEEPFM_TRAIN_KEY2INDEX_PATH: ${{ secrets.DEEPFM_TRAIN_KEY2INDEX_PATH }}
VECTORDB_PATH: ${{ secrets.VECTORDB_PATH }}
with:
host: ${{ secrets.EC2_HOST_ML }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
port: 22
envs: OPENAI_API_KEY,CLICK_LOG,DEEPFM_TRAIN_MODEL_PATH,DEEPFM_TRAIN_ENCODERS_PATH,DEEPFM_TRAIN_KEY2INDEX_PATH
script: |
# 프로젝트 디렉터리로 이동
cd ~/MLOps
# 최신 코드 받기
git checkout main
git fetch origin main
git pull origin main
# dvc s3 연결
dvc remote modify --local storage access_key_id ${{ secrets.AWS_ACCESS_KEY_ID }}
dvc remote modify --local storage secret_access_key ${{ secrets.AWS_SECRET_ACCESS_KEY }}
dvc pull --force
# MLOps 디렉터리로 이동
cd MLOps
# .env 파일 생성
echo "OPENAI_API_KEY=$OPENAI_API_KEY" > .env
echo "CLICK_LOG=$CLICK_LOG" >> .env
echo "DEEPFM_TRAIN_MODEL_PATH=$DEEPFM_TRAIN_MODEL_PATH" >> .env
echo "DEEPFM_TRAIN_ENCODERS_PATH=$DEEPFM_TRAIN_ENCODERS_PATH" >> .env
echo "DEEPFM_TRAIN_KEY2INDEX_PATH=$DEEPFM_TRAIN_KEY2INDEX_PATH" >> .env
echo "VECTORDB_PATH=$VECTORDB_PATH" >> .env
# Docker 컨테이너 재시작 (docker-compose가 있다면)
if [ -f docker-compose.yml ]; then
docker compose down
docker compose rm -f
docker rmi $(docker images -q) -f
docker compose up -d --build
fi
echo "Deployment completed successfully!"