Skip to content

Commit 8f285dd

Browse files
authored
Merge pull request #4 from 100-hours-a-week/feat/ci
ci: 스크립트 반영
2 parents 245097c + dea5083 commit 8f285dd

File tree

1 file changed

+27
-14
lines changed

1 file changed

+27
-14
lines changed

.github/workflows/cd-development.yml

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -36,38 +36,51 @@ jobs:
3636
key: ${{ secrets.DEVELOP_KEY }}
3737
port: ${{ secrets.DEVELOP_PORT || 22 }}
3838
command_timeout: 10m
39+
request_pty: false
3940
script: |
4041
set -e
4142
4243
APP_DIR="/home/${{ secrets.DEVELOP_USERNAME }}/ai"
4344
TEMP_DIR="$APP_DIR/temp"
45+
PORT=8001
4446
45-
# 1. 기존 프로세스 중지
46-
pkill -f "uvicorn" || true
47-
sleep 1
47+
echo "===== AI 서버 배포 시작 ====="
48+
49+
# 1. 기존 프로세스 중지 (포트 기반)
50+
echo "[1/5] 기존 프로세스 종료"
51+
PID=$(lsof -ti :$PORT || true)
52+
if [ -n "$PID" ]; then
53+
kill -15 "$PID"
54+
sleep 2
55+
fi
4856
4957
# 2. 소스 교체 (venv, logs는 유지)
58+
echo "[2/5] 소스 코드 교체"
5059
rm -rf $APP_DIR/src $APP_DIR/app.py $APP_DIR/requirements.txt $APP_DIR/README.md $APP_DIR/data $APP_DIR/scripts $APP_DIR/test_all_task.py
5160
cp -r $TEMP_DIR/* $APP_DIR/
5261
rm -rf $TEMP_DIR/*
5362
54-
# 3. 의존성 설치
63+
# 3. 가상환경 및 의존성 설치
64+
echo "[3/5] 의존성 설치"
5565
cd $APP_DIR
56-
$APP_DIR/venv/bin/pip install -r requirements.txt --quiet
66+
python3 -m venv venv
67+
source venv/bin/activate
68+
pip install --no-cache-dir -r requirements.txt
5769
58-
# 4. 애플리케이션 시작 (백그라운드로 완전히 분리)
59-
nohup $APP_DIR/venv/bin/python app.py > logs/app.log 2>&1 &
60-
APP_PID=$!
61-
disown $APP_PID
70+
# 4. 애플리케이션 시작
71+
echo "[4/5] FastAPI 서버 실행"
72+
nohup python3 app.py > logs/ai.log 2>&1 &
6273
6374
# 5. 시작 확인
64-
sleep 3
65-
if ps -p $APP_PID > /dev/null; then
66-
echo "Application started successfully (PID: $APP_PID)"
75+
echo "[5/5] 서버 시작 확인"
76+
sleep 2
77+
if lsof -ti :$PORT > /dev/null; then
78+
echo "===== 배포 완료 ====="
79+
echo "AI 서버 실행 중 (port $PORT)"
6780
exit 0
6881
else
69-
echo "Failed to start application"
70-
tail -20 logs/app.log
82+
echo "===== 배포 실패 ====="
83+
tail -20 logs/ai.log
7184
exit 1
7285
fi
7386

0 commit comments

Comments
 (0)