Jenkinsfile-dev.groovy 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. pipeline {
  2. agent any
  3. environment {
  4. GITURL = 'http://101.36.160.140:21044/delivery-warehouse-java/delivery-depot-vue.git' //git地址
  5. GETBRANCH = 'master' //git 分支
  6. CONFIGNAME = '128' //选择配置好的部署服务器名称
  7. SOURCEFILES = 'dist-dev.zip' //jar 包在 Jenkins 工作空间+项目名称下 的相对路径
  8. REMOVEPREFIX = '' //去除前缀,只要 jar 包名称
  9. REMOTEDIRECTORY = '/home/delivery/web/dev' //部署路径
  10. EXECCOMMAND = 'cd /home/delivery/web/dev && ./deploy.sh && ps aux | grep java' //执行命令,启动项目 && ./start.sh
  11. WORKSPACE = '/root/.jenkins/workspace/delivery-depot-web' //前端在 Jenkins 上的工作空间123
  12. }
  13. stages {
  14. stage('pull code') {
  15. steps {
  16. echo '从 gitlab 拉取代码'
  17. git branch: "${GETBRANCH}", credentialsId: '71f78619-368a-4880-b752-0feec5fd34e0', url: "${GITURL}"
  18. }
  19. }
  20. stage('build project') {
  21. steps {
  22. echo 'node.js 编译项目'
  23. sh '''
  24. # 进入项目工作目录
  25. cd ${WORKSPACE}
  26. # 给 build-dev.sh 脚本赋予执行权限
  27. chmod +x build-dev.sh
  28. # 执行打包脚本
  29. ./build-dev.sh
  30. '''
  31. }
  32. }
  33. stage('publish project') {
  34. steps {
  35. echo 'publish project'
  36. sshPublisher(publishers: [
  37. sshPublisherDesc(
  38. configName: "${CONFIGNAME}", // 使用双引号引用变量
  39. transfers: [sshTransfer(
  40. cleanRemote: false,
  41. excludes: '',
  42. execCommand: "${EXECCOMMAND}", // 使用双引号引用变量
  43. execTimeout: 120000,
  44. flatten: true,
  45. makeEmptyDirs: false,
  46. noDefaultExcludes: false,
  47. patternSeparator: '[, ]+',
  48. remoteDirectory: "${REMOTEDIRECTORY}", // 使用双引号引用变量
  49. remoteDirectorySDF: false,
  50. sourceFiles: "${SOURCEFILES}" ,// 使用双引号引用变量
  51. usePty: true
  52. )],
  53. usePromotionTimestamp: false,
  54. useWorkspaceInPromotion: false,
  55. verbose: false
  56. )
  57. ])
  58. }
  59. }
  60. }
  61. }