Jenkinsfile 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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
  56. if (env.BRANCH_NAME == 'master') {
  57. nodejs('v16') {
  58. sh 'npm run build:prod'
  59. }
  60. } else if (env.BRANCH_NAME ==~ /^(release\/.+)$/) {
  61. nodejs('v16') {
  62. sh 'npm run build:uat'
  63. }
  64. } else {
  65. nodejs('v16') {
  66. sh 'npm run build:test'
  67. }
  68. }
  69. }
  70. }
  71. }
  72. stage('构建docker镜像') {
  73. when {
  74. anyOf {
  75. branch 'develop'
  76. // branch 'uat'
  77. branch 'master'
  78. expression { BRANCH_NAME ==~ /^(release\/.+)$/ }
  79. }
  80. }
  81. environment {
  82. BUILD_DOCKER_JOB = 'cloud_build_docker_nginx_powerful_test'
  83. }
  84. steps {
  85. // echo '开始构建docker镜像'
  86. script {
  87. if (env.BRANCH_NAME == 'master') {
  88. BUILD_DOCKER_JOB = 'cloud_build_docker_nginx_prod'
  89. } else if (env.BRANCH_NAME ==~ /^(release\/.+)$/) {
  90. BUILD_DOCKER_JOB = 'cloud_build_docker_nginx_pre'
  91. } else {
  92. BUILD_DOCKER_JOB = 'cloud_build_docker_nginx_powerful_test'
  93. }
  94. }
  95. build job: BUILD_DOCKER_JOB, parameters: [string(name: 'version', value: env.BUILD_TAG), extendedChoice(name: 'service', value: 'manage_H5')]
  96. }
  97. }
  98. stage('发布docker镜像') {
  99. when {
  100. anyOf {
  101. // branch 'master'
  102. // branch 'uat'
  103. branch 'develop'
  104. }
  105. }
  106. environment {
  107. PUBLISH_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
  108. }
  109. steps {
  110. // echo '开始构建docker镜像'
  111. // script {
  112. // if ( env.BRANCH_NAME == 'master' ) {
  113. // PUBLISH_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
  114. // } else if ( env.BRANCH_NAME == 'uat' ) {
  115. // PUBLISH_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
  116. // } else {
  117. // PUBLISH_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
  118. // }
  119. // }
  120. 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')]
  121. }
  122. }
  123. }
  124. }