pipeline { agent any environment{ JWT_SECRET=credentials('JWT_SECRET') DATABASE_URL=credentials('DATABASE_URL') } stages{ stage('build'){ steps{ sh 'npm install' sh 'npm run build' sh 'mkdir standalone' sh 'cp -r public standalone/' sh 'cp -r prisma standalone/' sh 'cp -r .next/static standalone/.next/' sh 'cp -r .next/standalone/** standalone/' sh ' tar -cf subman.tar.gz standalone ' sh 'rm -r standalone' } } stage('deploy'){ steps{ sshPublisher(publishers: [sshPublisherDesc(configName: 'Demos', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'ssh-uploads/subman/upgrade.sh', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: 'ssh-uploads/subman/', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'subman.tar.gz')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]) } } } post { // Clean after build always { cleanWs(cleanWhenNotBuilt: true, deleteDirs: true, disableDeferredWipeout: true, // notFailBuild: true, cleanWhenSuccess:false, patterns: [[pattern: '**/*', type: 'INCLUDE'], [pattern: '.propsfile', type: 'EXCLUDE']]) } } }