Browse Source

prod

master
Mohsen Taba 3 weeks ago
parent
commit
3efae68bad
  1. 77
      Jenkinsfile

77
Jenkinsfile

@ -1,35 +1,72 @@
pipeline { pipeline {
environment { environment {
develop_server_ip = ''
develop_server_name = ''
production_server_ip = "88.99.212.243"
production_server_name = "newhorizon_germany_001_server"
project_path = "/projects/imam-javad/imam-javad_backend"
version = "master"
gitBranch = "origin/master"
production_server_ip = "46.173.16.83"
production_server_name = "4e1f741c-3f7a-407d-904e-6778ec6e6219"
project_path = "/projects/dovodi/dovodi-backend"
gitBranch = "origin/master"
} }
agent any agent any
stages { stages {
stage('deploy'){
steps{
script{
if(gitBranch=="origin/master"){
stage('🚀 Deploy Dovodi Backend (Background Build)') {
when { expression { gitBranch == "origin/master" } }
steps {
script {
try {
withCredentials([usernamePassword(credentialsId: production_server_name, usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { withCredentials([usernamePassword(credentialsId: production_server_name, usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
sh 'sshpass -p $PASSWORD ssh -p 1782 $USERNAME@$production_server_ip -o StrictHostKeyChecking=no "cd $project_path && ./runner.sh"'
def lastCommit = sh(script: 'git log -1 --pretty=format:"%h - %s (%an)"', returnStdout: true).trim()
sh """ sh """
curl -F chat_id=1457670318 \
-F message_thread_id=6 \
-F document=@/var/jenkins_home/jobs/${env.JOB_NAME}/builds/${env.BUILD_NUMBER}/log \
-F caption='Project name: #${env.JOB_NAME} \nBuild status is ${currentBuild.currentResult} \nBuild url: ${BUILD_URL} \nLast Commit: ${lastCommit}' \
https://api.telegram.org/bot7207581748:AAFeymryw7S44D86LYfWqYK-tSNeV3TOwBs/sendDocument
sshpass -p \$PASSWORD ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -o ServerAliveCountMax=120 \$USERNAME@${production_server_ip} << 'EOF'
cd ${project_path}
echo "⏳ Starting runner.sh in background to prevent timeout..."
rm -f /tmp/dovodi_backend_deploy_status.txt
rm -f /tmp/dovodi_backend_runner_deploy.log
nohup bash -c './runner.sh && echo "SUCCESS" > /tmp/dovodi_backend_deploy_status.txt || echo "FAIL" > /tmp/dovodi_backend_deploy_status.txt' > /tmp/dovodi_backend_runner_deploy.log 2>&1 &
echo "⏳ Process is running. Waiting for build and deploy to finish..."
while true; do
if [ -f /tmp/dovodi_backend_deploy_status.txt ]; then
STATUS=\$(cat /tmp/dovodi_backend_deploy_status.txt)
if [ "\$STATUS" = "SUCCESS" ]; then
echo "✅ Deployment completed successfully!"
break
else
echo "❌ ERROR: Deployment failed! Last 20 lines of log:"
tail -n 20 /tmp/dovodi_backend_runner_deploy.log
exit 1
fi
fi
sleep 10
done
EOF
""" """
} }
def lastCommit = sh(script: 'git log -1 --pretty=format:"%h - %s (%an)"', returnStdout: true).trim()
sh """
curl -F chat_id=1457670318 \
-F message_thread_id=6 \
-F document=@/var/jenkins_home/jobs/${env.JOB_NAME}/builds/${env.BUILD_NUMBER}/log \
-F caption='🚀 Dovodi Backend Deployment: SUCCESS \n📦 Project: #${env.JOB_NAME} \n🔗 Commit: ${lastCommit} \n🌐 URL: ${env.BUILD_URL}' \
https://api.telegram.org/bot7207581748:AAFeymryw7S44D86LYfWqYK-tSNeV3TOwBs/sendDocument
"""
} catch (Exception e) {
currentBuild.result = 'FAILURE'
def lastCommit = sh(script: 'git log -1 --pretty=format:"%h - %s (%an)"', returnStdout: true).trim()
sh """
curl -F chat_id=1457670318 \
-F message_thread_id=6 \
-F document=@/var/jenkins_home/jobs/${env.JOB_NAME}/builds/${env.BUILD_NUMBER}/log \
-F caption='❌ Dovodi Backend Deployment: FAILED \n📦 Project: #${env.JOB_NAME} \n🔗 Commit: ${lastCommit} \n🌐 URL: ${env.BUILD_URL}' \
https://api.telegram.org/bot7207581748:AAFeymryw7S44D86LYfWqYK-tSNeV3TOwBs/sendDocument
"""
throw e
} }
} }
} }
} }
} }
} }
Loading…
Cancel
Save