fix: update Jenkinsfile with correct sshagent and deploy syntax

This commit is contained in:
Hiro
2026-03-28 11:11:41 +00:00
parent d1dbd22766
commit 7973d02a4f

41
Jenkinsfile vendored
View File

@@ -10,7 +10,6 @@ pipeline {
REMOTE_USER = 'root'
REMOTE_HOST = '10.5.0.116'
REMOTE_PATH = '/compose'
DOCKER_CREDENTIALS = credentials('gitea-docker-registry')
}
stages {
stage('Obtener Nombre del Repositorio') {
@@ -38,11 +37,6 @@ pipeline {
script {
try {
sh """
ls -la
ls -la src echo "Directorio src no encontrado"
ls -la src/main/docker echo "Directorio src/main/docker no encontrado"
cat .dockerignore || echo ".dockerignore no encontrado"
docker -v
docker build \
-t ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:${BUILD_NUMBER} .
docker tag ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:${BUILD_NUMBER} \
@@ -57,9 +51,9 @@ pipeline {
stage('Push to Registry') {
steps {
script {
try {
docker.withRegistry("https://${URL_REGISTRY}", 'gitea-docker-registry') {
withCredentials([usernamePassword(credentialsId: 'gitea-docker-registry', usernameVariable: 'REG_USR', passwordVariable: 'REG_PSW')]) {
sh """
docker login ${URL_REGISTRY} -u ${REG_USR} -p ${REG_PSW}
docker push ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:${BUILD_NUMBER}
docker push ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:latest
"""
@@ -85,7 +79,9 @@ services:
- "traefik.http.routers.${NAME_SERVICE}.rule=Host(recall.vodorod.cl)"
environment:
- TZ=America/Santiago
- DATABASE_URL=file:/app/data/dev.db
- ADMIN_TOKEN=${ADMIN_TOKEN}
- DATA_ROOT=/app/data
- CORS_ORIGIN=*
volumes:
- ./data:/app/data
networks:
@@ -98,26 +94,27 @@ networks:
external: true
"""
writeFile file: 'docker-compose.yaml', text: dockerComposeTemplate
sshagent(['gitea-ssh']) {
sshagent(credentials: ['ssh-virtual-machine']) {
withCredentials([usernamePassword(credentialsId: 'gitea-docker-registry', usernameVariable: 'REG_USR', passwordVariable: 'REG_PSW')]) {
sh """
ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} 'mkdir -p ${REMOTE_PATH}/${NAME_SERVICE}'
scp docker-compose.yaml ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH}/${NAME_SERVICE}/
ssh ${REMOTE_USER}@${REMOTE_HOST} 'cd ${REMOTE_PATH}/${NAME_SERVICE} && docker-compose down || true'
ssh ${REMOTE_USER}@${REMOTE_HOST} 'cd ${REMOTE_PATH}/${NAME_SERVICE} && docker-compose up -d'
ssh -o StrictHostKeyChecking=no \${REMOTE_USER}@\${REMOTE_HOST} "docker login \${URL_REGISTRY} -u \${REG_USR} -p \${REG_PSW}"
ssh -o StrictHostKeyChecking=no \${REMOTE_USER}@\${REMOTE_HOST} "mkdir -p \${REMOTE_PATH}/\${PROJECT}/\${NAME_SERVICE}"
scp docker-compose.yaml \${REMOTE_USER}@\${REMOTE_HOST}:\${REMOTE_PATH}/\${PROJECT}/\${NAME_SERVICE}/docker-compose.yaml
ssh -o StrictHostKeyChecking=no \${REMOTE_USER}@\${REMOTE_HOST} "cd \${REMOTE_PATH}/\${PROJECT}/\${NAME_SERVICE} && docker compose down && docker compose pull && docker compose up -d"
ssh -o StrictHostKeyChecking=no \${REMOTE_USER}@\${REMOTE_HOST} "docker system prune -f"
"""
}
}
}
}
}
stage('Notificación') {
steps {
script {
echo "Pipeline completado exitosamente para ${NAME_SERVICE}"
echo "Build: ${BUILD_NUMBER}"
echo "URL: ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:${BUILD_NUMBER}"
}
}
}
post {
always {
cleanWs()
}
failure {
echo "Pipeline failed. Check logs for details."
}
}
}