Skip to content

Jenkins pipeline by kuldeep

December 21, 2022 | 12:00 AM

Jenkins

Sample pipeline script

pipeline {
    agent any
    options {
        skipStagesAfterUnstable()
    }
    stages {
        stage('Build') {
            steps {
                sh 'make'
            }
        }
        stage('Test'){
            steps {
                sh 'make check'
                junit 'reports/**/*.xml'
            }
        }
        stage('Deploy') {
            steps {
                sh 'make publish'
            }
        }
    }
}

Sample

pipeline {
  agent any
  environment {
    // Variable declaration and usage
    def nssmPath = 'C:\\Users\\admin\\Desktop\\kuldeep\\nssm-2.24\\win64\\nssm.exe'
  }
  stages {
    stage('Clean-up') {
      steps {
        bat 'if exist C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\Jenkins-job\\dist rmdir /S /Q C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\Jenkins-job\\dist'
      }
    }

    stage('Pull new code') {
      steps {
        // Clone repo
        git branch: 'production', credentialsId: 'PAT-Jenkins', url: 'https://github.com/ETN-Solutions/customer-portal-fe.git'
      }
    }

    stage('Install packages') {
      steps {
        // List files
        bat 'npm i'
      }
    }

    stage('Build') {
      steps {
        // List files
        bat 'npm run prod'
      }
    }

    stage('Stop service') {
      steps {
        bat "${nssmPath} stop serve-cp"
      }
    }

    stage('Cleanup') {
      steps {
        // Delete all files inside the public directory
        bat 'if exist C:\\Users\\admin\\Desktop\\kuldeep\\express\\customerPortal\\public\\* del /Q C:\\Users\\admin\\Desktop\\kuldeep\\express\\customerPortal\\public\\*'

        // Delete all subdirectories inside the public directory
        bat 'for /D %%p in ("C:\\Users\\admin\\Desktop\\kuldeep\\express\\customerPortal\\public\\*") do rmdir /S /Q "%%p"'
      }
    }

    stage('Copy Files') {
      steps {
        script {
          // Create the destination directory if it doesn't exist
          bat 'if not exist C:\\Users\\admin\\Desktop\\kuldeep\\express\\customerPortal\\public mkdir C:\\Users\\admin\\Desktop\\kuldeep\\express\\customerPortal\\public'

          // Copy files using xcopy
          bat 'xcopy C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\Jenkins-job\\dist\\* C:\\Users\\admin\\Desktop\\kuldeep\\express\\customerPortal\\public /E /H /C /I /Y'
        }
      }
    }

    stage('Start service') {
      steps {
        bat "${nssmPath} start serve-cp"
      }
    }
  }
}