forked from erp-dev/erp
46 lines
1.1 KiB
YAML
46 lines
1.1 KiB
YAML
# 使用 screen 部署 Django 项目
|
|
|
|
when:
|
|
branch: main
|
|
event: push
|
|
|
|
steps:
|
|
- name: test
|
|
image: ghcr.io/astral-sh/uv:python3.14-bookworm
|
|
commands:
|
|
# 安装依赖
|
|
- uv sync
|
|
|
|
# 数据库迁移
|
|
- uv run python manage.py migrate
|
|
|
|
# 运行测试
|
|
- uv run python manage.py test
|
|
|
|
- name: deploy-with-screen
|
|
image: appleboy/drone-ssh
|
|
settings:
|
|
host:
|
|
from_secret: deploy_host
|
|
username:
|
|
from_secret: deploy_user
|
|
password:
|
|
from_secret: deploy_password
|
|
port: 22
|
|
script:
|
|
- cd /path/to/your/project
|
|
- git pull origin main
|
|
- uv sync
|
|
- uv run python manage.py migrate
|
|
- |
|
|
# 停止旧的 screen 会话
|
|
screen -S erp -X quit || true
|
|
# 等待进程完全退出
|
|
sleep 2
|
|
# 在新的 screen 会话中启动服务
|
|
screen -dmS erp uv run python manage.py runserver 0.0.0.0:8000
|
|
# 验证 screen 会话是否创建成功
|
|
screen -ls | grep erp && echo "ERP server started in screen session"
|
|
when:
|
|
- evaluate: 'CI_PIPELINE_STATUS == "success"'
|