From 13b778a4e40a3b19872b65bad47e4cd32db7b9c1 Mon Sep 17 00:00:00 2001 From: robbond Date: Fri, 6 Mar 2026 15:42:18 +0000 Subject: [PATCH] fix(ci): add default deploy credential and host variables to Jenkins pipeline --- Jenkinsfile | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a034cbf..e60fa69 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,3 +1,8 @@ +def DEPLOY_SSH_CREDENTIAL_ID = env.DEPLOY_SSH_CREDENTIAL_ID ?: 'plesk-agency-deploy-key' +def APP_HOST = env.APP_HOST ?: '192.168.68.89' +def APP_USER = env.APP_USER ?: 'deploy' +def DEPLOY_PATH = env.DEPLOY_PATH ?: '/opt/plesk-agency-portal' + pipeline { // Build + deploy stages require Docker CLI/daemon access on the Jenkins node. // Ensure this label maps to an agent with Docker installed and usable. @@ -68,30 +73,26 @@ pipeline { stage('Deploy') { steps { - script { - if (!env.DEPLOY_SSH_CREDENTIAL_ID) { - error 'DEPLOY_SSH_CREDENTIAL_ID is required' - } - } - sshagent(credentials: ["${env.DEPLOY_SSH_CREDENTIAL_ID}"]) { + withCredentials([sshUserPrivateKey( + credentialsId: DEPLOY_SSH_CREDENTIAL_ID, + keyFileVariable: 'SSH_KEY' + )]) { sh ''' set -euo pipefail - : "${DEPLOY_SSH_HOST:?Missing DEPLOY_SSH_HOST}" - : "${DEPLOY_SSH_USER:?Missing DEPLOY_SSH_USER}" - : "${DEPLOY_PATH:?Missing DEPLOY_PATH}" rsync -az \ docker-compose.prod.yml \ - scripts/deploy-prod.sh \ - scripts/smoke-check.sh \ - scripts/rollback-prod.sh \ - ${DEPLOY_SSH_USER}@${DEPLOY_SSH_HOST}:${DEPLOY_PATH}/ + scripts/ \ + -e "ssh -i $SSH_KEY" \ + $APP_USER@$APP_HOST:$DEPLOY_PATH/ docker save ${IMAGE_LATEST} ${IMAGE_BUILD} \ - | ssh ${DEPLOY_SSH_USER}@${DEPLOY_SSH_HOST} 'docker load' + | ssh -i $SSH_KEY $APP_USER@$APP_HOST 'docker load' - ssh ${DEPLOY_SSH_USER}@${DEPLOY_SSH_HOST} \ - "chmod +x ${DEPLOY_PATH}/deploy-prod.sh ${DEPLOY_PATH}/smoke-check.sh ${DEPLOY_PATH}/rollback-prod.sh && APP_IMAGE='${IMAGE_BUILD}' DEPLOY_PATH='${DEPLOY_PATH}' ${DEPLOY_PATH}/deploy-prod.sh" + ssh -i $SSH_KEY $APP_USER@$APP_HOST \ + "cd $DEPLOY_PATH && chmod +x ./scripts/deploy-prod.sh ./scripts/smoke-check.sh ./scripts/rollback-prod.sh" + + ssh -i $SSH_KEY $APP_USER@$APP_HOST "cd $DEPLOY_PATH && ./scripts/deploy-prod.sh" ''' } }