node {
    try {
        // Checkout project
        stage('checkout project') {
            checkout scm
        }

        // Check environment
        stage('check env') {
            sh "mvn -v"
            sh "java -version"
        }


        // Clean and package the project
        stage('clean package') {
            sh "./mvnw clean package -X"
        }

        // Verify JAR creation
        stage('verify JAR creation') {
            sh "ls -l target/"
        }

        // Manually inspect JAR file
        stage('inspect JAR file') {
            sh "jar tf target/tale-service-1.0.0-SNAPSHOT.jar"
        }

        // Reload systemd daemon
        stage('reload daemon') {
            sh "echo 'manM3423M' | sudo -S systemctl daemon-reload"
        }

        // Start systemd service with debug logging
        stage('start daemon with debug') {
            sh "echo 'manM3423M' | sudo -S systemctl start tale-service-0.0.1-SNAPSHOT"
        }

        // Enable systemd service
        stage('enable daemon') {
            sh "echo 'manM3423M' | sudo -S systemctl enable tale-service-0.0.1-SNAPSHOT"
        }

        // Restart systemd service
        stage('restart daemon') {
            sh "echo 'manM3423M' | sudo -S systemctl restart tale-service-0.0.1-SNAPSHOT"
        }
    } catch (e) {
        throw e;
    }
}
