Jenkinsfile 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. // 所有脚本命令包含在pipeline{}中
  2. pipeline {
  3. // 指定任务在哪个节点执行(Jenkins支持分布式)
  4. agent any
  5. // 配置全局环境,指定变量名=变量值信息
  6. // environment{
  7. // host = '172.17.1.22'
  8. // }
  9. options{
  10. disableConcurrentBuilds()
  11. }
  12. triggers {
  13. GenericTrigger(
  14. genericVariables: [
  15. [key: 'ref', value: '$.ref']
  16. ],
  17. causeString: 'Triggered on $ref',
  18. token: 'android-cloud-h5',
  19. tokenCredentialId: '',
  20. silentResponse: false,
  21. printPostContent: true,
  22. printContributedVariables: true,
  23. regexpFilterExpression: 'refs/heads/' + env.BRANCH_NAME,
  24. regexpFilterText: '$ref'
  25. )
  26. }
  27. // 存放所有任务的合集
  28. stages {
  29. // 实现任务的具体流程
  30. stage('初始化构建环境') {
  31. steps {
  32. // echo 'env.BRANCH_NAME: ' + env.BRANCH_NAME
  33. // echo 'env.BUILD_NUMBER: ' + env.BUILD_NUMBER
  34. // echo 'env.BUILD_ID: ' + env.BUILD_ID
  35. // echo 'env.BUILD_DISPLAY_NAME: ' + env.BUILD_DISPLAY_NAME
  36. // echo 'env.JOB_NAME: ' + env.JOB_NAME
  37. // echo 'env.JOB_BASE_NAME: ' + env.JOB_BASE_NAME
  38. // echo 'env.BUILD_TAG: ' + env.BUILD_TAG
  39. nodejs('v16') {
  40. sh '''
  41. node -v
  42. npm -v
  43. npm install
  44. '''
  45. }
  46. }
  47. }
  48. stage('构建项目') {
  49. steps {
  50. script {
  51. if ( env.TAG_NAME ) {
  52. nodejs('v16') {
  53. sh 'npm run build:prod'
  54. }
  55. } else if ( env.BRANCH_NAME == 'master' ) {
  56. nodejs('v16') {
  57. sh 'npm run build:prod'
  58. }
  59. } else if ( env.BRANCH_NAME == 'uat' ) {
  60. nodejs('v16') {
  61. sh 'npm run build:uat'
  62. }
  63. } else {
  64. nodejs('v16') {
  65. sh 'npm run build:test'
  66. }
  67. }
  68. }
  69. }
  70. }
  71. stage('构建docker镜像') {
  72. when {
  73. anyOf {
  74. branch 'develop'
  75. // branch 'uat'
  76. branch 'master'
  77. expression { BRANCH_NAME ==~ /^(release\/.+)$/ }
  78. }
  79. }
  80. environment {
  81. BUILD_DOCKER_JOB = 'cloud_build_docker_nginx_powerful_test'
  82. }
  83. steps {
  84. // echo '开始构建docker镜像'
  85. script {
  86. if ( env.BRANCH_NAME == 'master' ) {
  87. BUILD_DOCKER_JOB = 'cloud_build_docker_nginx_prod'
  88. } else if ( env.BRANCH_NAME ==~ /^(release\/.+)$/ ) {
  89. BUILD_DOCKER_JOB = 'cloud_build_docker_nginx_pre'
  90. } else {
  91. BUILD_DOCKER_JOB = 'cloud_build_docker_nginx_powerful_test'
  92. }
  93. }
  94. build job: BUILD_DOCKER_JOB, parameters: [string(name: 'version', value: env.BUILD_TAG), extendedChoice(name: 'service', value: 'manage_H5')]
  95. }
  96. }
  97. stage('发布docker镜像') {
  98. when {
  99. anyOf {
  100. // branch 'master'
  101. // branch 'uat'
  102. branch 'develop'
  103. }
  104. }
  105. environment {
  106. PUBLISH_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
  107. }
  108. steps {
  109. // echo '开始构建docker镜像'
  110. // script {
  111. // if ( env.BRANCH_NAME == 'master' ) {
  112. // PUBLISH_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
  113. // } else if ( env.BRANCH_NAME == 'uat' ) {
  114. // PUBLISH_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
  115. // } else {
  116. // PUBLISH_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
  117. // }
  118. // }
  119. build job: PUBLISH_DOCKER_JOB, parameters: [extendedChoice(name: 'service', value: 'cloud-nginx'), string(name: 'version', value: env.BUILD_TAG), string(name: 'replicas', value: '3'), string(name: 'memory', value: '2G'), string(name: 'cpu', value: '2')]
  120. }
  121. }
  122. }
  123. }