pipeline { agent any environment { REMOTE_HOST = "43.159.145.241" // 远程服务器 REMOTE_PROJECT_PATH = "/data/webapps/influencer_search_agent" // 远程 Python 项目路径 VENV_DIR = "/data/webapps/influencer_search_agent/venv" // 远程虚拟环境目录 } stages { stage('Checkout 代码') { steps { git branch: 'test', credentialsId: 'fly_gitlab_auth', url: 'http://172.24.16.20/python/influencer-search-demo.git' } } stage('进程下线') { steps { sh "ssh ${REMOTE_HOST} 'sh /data/sh/kill_influencer_search_agent.sh'" } } stage('工程同步') { steps { sh """ ssh ${REMOTE_HOST} 'mkdir -p ${REMOTE_PROJECT_PATH}' rsync -avz --exclude 'venv' ${WORKSPACE}/ ${REMOTE_HOST}:${REMOTE_PROJECT_PATH}/ """ } } stage('安装依赖') { steps { sh """ ssh ${REMOTE_HOST} ' cd ${REMOTE_PROJECT_PATH} && if [ ! -d "${VENV_DIR}" ]; then python3 -m venv ${VENV_DIR} fi && source ${VENV_DIR}/bin/activate && pip install --upgrade pip && pip install -r requirements.txt ' """ } } stage('工程启动') { steps { sh """ ssh ${REMOTE_HOST} ' source ${VENV_DIR}/bin/activate && nohup env PYTHONPATH=/data/webapps/influencer_search_agent python3 -m dialogue.influencer_search > /data/webapps/influencer_search_agent/nohup.out 2>&1 & ' """ } } } post { success { echo '✅ 部署成功!' } failure { echo '❌ 部署失败,请检查日志!' } } }