Jenkinsfile 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #!groovy
  2. @Library('jenkinslib') _
  3. def build = new org.devops.build()
  4. def color = new org.devops.color()
  5. def systemtime = new org.devops.systemtime()
  6. def String cpu = "${env.cpu}"
  7. def String imagePrefix = "${env.imagePrefix}"
  8. def String buildImage = "${env.buildImage}"
  9. pipeline {
  10. agent {
  11. node {
  12. label 'master'
  13. }
  14. }
  15. options {
  16. disableConcurrentBuilds()
  17. buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '20')
  18. }
  19. //设定2个参数,根据项目类型不同,修改对应的description name value visibleItemCount defaultValue 即可
  20. parameters {
  21. choice choices: ['false', 'true'], description: '是否需要打镜像包,默认为否', name: 'buildImage'
  22. extendedChoice description: '只有在需要打镜像包的情况下,才需要选择CPU架构。可单选/多选/全选', multiSelectDelimiter: ',', name: 'cpu',
  23. quoteValue: true,
  24. saveJSONParameterToFile: false,
  25. type: 'PT_CHECKBOX',
  26. value: 'x86,arm64',
  27. visibleItemCount: 5
  28. // 需修改对应的镜像名称
  29. string defaultValue: 'bus.ga/jzywb/dcuc/', description: '只有在需要打镜像包的情况下,才需要填写要打镜像通用前缀名称,注意最后面要加 / ', name: 'imagePrefix', trim: false
  30. }
  31. stages {
  32. stage('MAVEN-BUILD') {
  33. steps {
  34. script {
  35. color.PrintMes('执行mvn打包', 'green')
  36. //使用mvn方法打包,并传入打包参数.根据实际情况修改打包策略
  37. build.Build('mvn', 'mvn clean deploy -DskipTests=true', 'master')
  38. }
  39. }
  40. post {
  41. success {
  42. script {
  43. version = build.GetMvnParentVersion()
  44. systime = systemtime.GetSysTime('yyMMdd')
  45. //将打出来的tar包,按照命名规范命名。根据实际情况,修改对应的系统简称和区域标识(DCUC-AUTH-BACK-TJDSJ)
  46. //如果是单模块项目,则直接cd target;如果是多模块项目,则是cd 模块名称/target
  47. sh """cd target
  48. cp dcuc-auth-back-*.tar.gz DCUC-AUTH-BACK-TJDSJ-${version}-${env.GIT_COMMIT.take(8)}-BETA-${systime}.tar.gz
  49. """
  50. //将复制的按照命名规范的tar包提取到Jenkins的面板,方便下载。根据实际情况,修改对应的系统简称和区域标识(DCUC-AUTH-BACK-TJDSJ)
  51. //如果是单模块项目,则直接target/xxxxx;如果是多模块项目,则是模块名称/target/xxxx
  52. //多模块写法:archiveArtifacts artifacts: 'dcuc-auth-back/target/DCUC-AUTH-BACK-TJDSJ-*.tar.gz'
  53. //单模块写法:
  54. archiveArtifacts artifacts: 'target/DCUC-AUTH-BACK-TJDSJ-*.tar.gz'
  55. }
  56. }
  57. }
  58. }
  59. stage('DOCKER-BUILD') {
  60. when {
  61. expression {
  62. return (buildImage == 'true')
  63. }
  64. }
  65. steps {
  66. script {
  67. //将cpu架构和模块名称传入方法打镜像包.若在上面定义的参数名称没变,可不修改
  68. build.BuildImage("${cpu}")
  69. }
  70. }
  71. }
  72. }
  73. //构建后的操作,用来显示结果.所有项目都适用,可不改
  74. post {
  75. success {
  76. wrap([$class: 'BuildUser']) {
  77. script {
  78. currentBuild.description = "Start By ${env.BUILD_USER} And Build Success"
  79. }
  80. }
  81. }
  82. failure {
  83. wrap([$class: 'BuildUser']) {
  84. script {
  85. currentBuild.description = "Start By ${env.BUILD_USER} And Build Failure"
  86. }
  87. }
  88. }
  89. unstable {
  90. wrap([$class: 'BuildUser']) {
  91. script {
  92. currentBuild.description = "Start By ${env.BUILD_USER} And Build Unstable"
  93. }
  94. }
  95. }
  96. }
  97. }