pipeline { agent any environment { REMOTE_HOST = credentials('agent-desk-ssh-host') REMOTE_USER = credentials('agent-desk-ssh-user') SSH_CREDENTIALS_ID = 'agent-desk-server-ssh' REPO_URL = 'https://gitadmin:12345678911@gitea.jaycode.online/gitadmin/signalscout-backend.git' PUBLIC_READY_URL = 'https://signalscout.jaycode.online/health' } stages { stage('Deploy from Gitea') { steps { withCredentials([sshUserPrivateKey(credentialsId: "${SSH_CREDENTIALS_ID}", keyFileVariable: 'SSH_KEY')]) { // Jenkins只负责触发服务器部署;依赖安装、迁移、测试和服务重启都由目标服务器脚本统一完成。 sh ''' chmod 600 "${SSH_KEY}" ssh -o StrictHostKeyChecking=no "${REMOTE_USER}@${REMOTE_HOST}" \ -i "${SSH_KEY}" \ "REPO_URL='${REPO_URL}' PUBLIC_READY_URL='${PUBLIC_READY_URL}' bash -s" \ < deployment/jenkins/deploy_backend.sh ''' } } } } }