Jenkinsfile 2.7 KB

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