pipeline { agent any environment { GITURL = 'http://101.36.160.140:21044/delivery-warehouse-java/delivery-depot-vue.git' //git地址 GETBRANCH = 'master' //git 分支 CONFIGNAME = '128' //选择配置好的部署服务器名称 SOURCEFILES = 'dist-dev.zip' //jar 包在 Jenkins 工作空间+项目名称下 的相对路径 REMOVEPREFIX = '' //去除前缀,只要 jar 包名称 REMOTEDIRECTORY = '/home/delivery/web/dev' //部署路径 EXECCOMMAND = 'cd /home/delivery/web/dev && ./deploy.sh && ps aux | grep java' //执行命令,启动项目 && ./start.sh WORKSPACE = '/root/.jenkins/workspace/delivery-depot-web' //前端在 Jenkins 上的工作空间123 } stages { stage('pull code') { steps { echo '从 gitlab 拉取代码' git branch: "${GETBRANCH}", credentialsId: '71f78619-368a-4880-b752-0feec5fd34e0', url: "${GITURL}" } } stage('build project') { steps { echo 'node.js 编译项目' sh ''' # 进入项目工作目录 cd ${WORKSPACE} # 给 build-dev.sh 脚本赋予执行权限 chmod +x build-dev.sh # 执行打包脚本 ./build-dev.sh ''' } } stage('publish project') { steps { echo 'publish project' sshPublisher(publishers: [ sshPublisherDesc( configName: "${CONFIGNAME}", // 使用双引号引用变量 transfers: [sshTransfer( cleanRemote: false, excludes: '', execCommand: "${EXECCOMMAND}", // 使用双引号引用变量 execTimeout: 120000, flatten: true, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: "${REMOTEDIRECTORY}", // 使用双引号引用变量 remoteDirectorySDF: false, sourceFiles: "${SOURCEFILES}" ,// 使用双引号引用变量 usePty: true )], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false ) ]) } } } }