Как задеплоить war file с github через jenkins в tomcat

Рейтинг: 0Ответов: 1Опубликовано: 12.07.2023

У меня есть проект на гитхабе, гитхаб связан с jenkins по SSH, как Дженкинсом задеплоить проект в tomcat Tomcat 10 Дженкинс 2.4

Оба находятся на виртуалке virtual box Пробовал плагин внутри Jenkins deploy in container но он для 9 tomcat

Единственное решение вижу через pipeline но я в этом новичок

Еще пробовал war файл Дженкинса задеплоить в tomcat но tomcat не может включить Дженкинса в силу разных версий

Что делать?

Ответы

▲ 0Принят

Итак, плагин который имеется у Jenkins deploy in container придуман для tomcat 9 версии, выше этой он подключаться не будет.

Моим решением стало написать PipeLine код, ч не стал долго вникать в его синтаксис и напороться пришла нейронка которая написала его вместо меня.

А код для деплоя ниже:

pipeline {
agent any

stages {
    stage('Checkout') {
        steps {
            // Checkout the code repository
            checkout scm
        }
    }
    
    stage('Build') {
        steps {
            // Build the war file
             sh 'mvn clean package'
        }
    }
    
    stage('Deploy') {
        environment {
            TOMCAT_HOME = '/opt/tomcat'
            WAR_FILE = 'target/HelloWorldServlet-1.0-SNAPSHOT.war'
        }
        
        steps {
            // Stop Tomcat
            sh "${TOMCAT_HOME}/bin/shutdown.sh"
            
            // Remove existing war file and deployed application
            sh "rm -rf ${TOMCAT_HOME}/webapps/HelloWorldServlet-1.0-SNAPSHOT*"
            
            // Copy the new war file to Tomcat webapps directory
            sh "cp ${WAR_FILE} ${TOMCAT_HOME}/webapps/myapp.war"
            
            // Start Tomcat
            sh "${TOMCAT_HOME}/bin/startup.sh"
        }
    }
    
    stage('Verify') {
        steps {
            // Wait for Tomcat to start
            sh "sleep 30"
            
            // Verify if the application is deployed successfully
            sh "curl -s http://localhost:8080/HelloWorldServlet-1.0-SNAPSHOT/"
        }
    }
}

post {
    always {
        // Cleanup any leftover files after deployment
        sh "rm -rf ${WAR_FILE}"
    }
}

}