#!groovy def remote = [:] remote.host = "oreolek.ru" remote.name = remote.host remote.allowAnyHosts = false remote.knownHosts = "/var/lib/jenkins/.ssh/known_hosts" node { currentBuild.result = "SUCCESS"; try { stage('Checkout'){ checkout scm } stage('Build'){ env.NODE_ENV = "development"; sh 'yarn install'; sh './node_modules/gulp/bin/gulp.js dist'; } withCredentials([sshUserPrivateKey( credentialsId: 'f8d69fad-cd63-43ca-8e4e-411f4cf8ac73', keyFileVariable: 'identity', passphraseVariable: 'passPhrase', usernameVariable: 'userName' )]) { stage('Deploy'){ echo 'Copy to web server'; remote.user = userName remote.passphrase = passPhrase remote.identityFile = identity sh 'rm -rf city_landscape' sh 'mv dist city_landscape' sshPut remote: remote, from: './city_landscape', into: '/var/www/oreolek/my_games/' sh 'mv city_landscape dist' } } stage('Cleanup'){ echo 'prune and cleanup'; sh 'npm prune'; sh 'rm -rf build dist'; emailext ( subject: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'", body: """

SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':

Check console output at "${env.JOB_NAME} [${env.BUILD_NUMBER}]"

""", recipientProviders: [developers()] ); } } catch (err) { currentBuild.result = "FAILURE"; sh 'rm -rf build dist'; emailext ( subject: "FAILURE: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'", body: """

FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':

Check console output at "${env.JOB_NAME} [${env.BUILD_NUMBER}]"

""", recipientProviders: [developers()] ) throw err } }