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
          '''
        }
      }
    }
  }
}
