pipeline { agent any stages { stage('Checkout SCM') { steps { checkout([$class: 'GitSCM', branches: [[name: '**']], doGenerateSubmoduleConfigurations: false, extensions: [], userRemoteConfigs: [[url: 'http://172.20.0.2:3000/Ismail/NodeMap', credentialsId: 'd378f013-2f24-417b-9afd-33df5d410ab8']]]) } } stage('Check Node.js Version') { steps { script { def nodeVersion = sh(script: 'node --version', returnStdout: true).trim() echo "Node.js version: ${nodeVersion}" } } } stage('Install Dependencies') { steps { sh 'npm install' } } stage('Run Unit Tests') { steps { sh 'npm test' } } } post { success { emailext( subject: "Build Success: ${JOB_NAME} #${BUILD_NUMBER}", body: """ Build Successful! Details: - Job Name: ${JOB_NAME} - Build Number: ${BUILD_NUMBER} - Build URL: ${BUILD_URL} """, to: "ismailali1553@gmail.com" ) } failure { emailext( subject: "Build Failed: ${JOB_NAME} #${BUILD_NUMBER}", body: """ Build Failed! Details: - Job Name: ${JOB_NAME} - Build Number: ${BUILD_NUMBER} - Build URL: ${BUILD_URL} """, to: "ismailali1553@gmail.com" ) } } }