build.sh 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. #!/bin/bash
  2. set -e
  3. env='test'
  4. base_dir=`pwd`
  5. proj_dir="${base_dir}/tmp/proj"
  6. bin_dir="${base_dir}/tmp/bin"
  7. create_dirs() {
  8. if [ -d ${proj_dir} ]; then
  9. rm -rf ${proj_dir}
  10. fi
  11. mkdir -p ${proj_dir}
  12. if [ -d ${bin_dir} ]; then
  13. rm -rf ${bin_dir}
  14. fi
  15. mkdir -p ${bin_dir}
  16. }
  17. ###############################################################################
  18. # clone 项目
  19. ###############################################################################
  20. clone_proj() {
  21. cd ${proj_dir}
  22. # git clone --depth=1 https://github.com/reghao/ik-analyzer-solr.git
  23. # git clone --depth=1 https://github.com/reghao/jieba-analysis.git
  24. # git clone --depth=1 https://git.reghao.cn/reghao/jutil
  25. git -c http.sslVerify=false clone --depth=1 https://git.reghao.cn/reghao/oss
  26. git -c http.sslVerify=false clone --depth=1 https://git.reghao.cn/reghao/tnb
  27. git -c http.sslVerify=false clone --depth=1 https://git.reghao.cn/reghao/tnbapp
  28. }
  29. ###############################################################################
  30. # 安装依赖
  31. ###############################################################################
  32. build_dependencies() {
  33. cd ${proj_dir}/jutil
  34. mvn clean install -Dmaven.test.skip
  35. cd ${proj_dir}/ik-analyzer-solr
  36. mvn clean install -Dmaven.test.skip
  37. cd ${proj_dir}/jieba-analysis
  38. mvn clean install -Dmaven.test.skip
  39. }
  40. ###############################################################################
  41. # 构建 oss 应用
  42. ###############################################################################
  43. build_oss() {
  44. ###############################################################################
  45. # 构建 oss 项目 jar 包
  46. ###############################################################################
  47. cd ${proj_dir}/oss
  48. mvn clean install -Dmaven.test.skip -pl oss-sdk -am
  49. mvn clean package -Dmaven.test.skip -P${env}
  50. cp oss-mgr/target/oss-mgr.jar ${bin_dir}
  51. # cp oss-store/bin/oss-store.jar ${bin_dir}
  52. docker_prefix='registry.cn-chengdu.aliyuncs.com/tnb028'
  53. cd ${proj_dir}/oss/oss-mgr
  54. docker build -t ${docker_prefix}/oss-mgr .
  55. docker push ${docker_prefix}/oss-mgr
  56. }
  57. ###############################################################################
  58. # 构建后端应用
  59. ###############################################################################
  60. build_backend() {
  61. ###############################################################################
  62. # 构建 tnb 项目 jar 包
  63. ###############################################################################
  64. cd ${proj_dir}/tnb
  65. mvn clean package -Dmaven.test.skip -P${env}
  66. cp gateway/target/tnb-gateway.jar ${bin_dir}
  67. cp auth/auth-service/target/tnb-auth.jar ${bin_dir}
  68. cp user/user-service/target/tnb-user.jar ${bin_dir}
  69. cp message/message-service/target/tnb-message.jar ${bin_dir}
  70. cp file/file-service/target/tnb-file.jar ${bin_dir}
  71. cp content/content-service/target/tnb-content.jar ${bin_dir}
  72. cp data/data-service/target/tnb-data.jar ${bin_dir}
  73. cp search/search-service/target/tnb-search.jar ${bin_dir}
  74. }
  75. ###############################################################################
  76. # 构建前端应用
  77. ###############################################################################
  78. build_front() {
  79. ###############################################################################
  80. # 构建 tnbapp 项目
  81. ###############################################################################
  82. cd ${proj_dir}/tnbapp
  83. npm --registry http://registry.npm.taobao.org i
  84. npm run build
  85. if [ ! -d ${bin_dir}/tnbapp ]; then
  86. mkdir ${bin_dir}/tnbapp
  87. fi
  88. cp -r dist/* ${bin_dir}/tnbapp
  89. }
  90. ###############################################################################
  91. # 构建 tnb 应用 docker 镜像
  92. ###############################################################################
  93. build_image() {
  94. cd ${proj_dir}/tnb
  95. # commit_id=`git rev-parse HEAD | cut -c 1-8`
  96. docker_prefix='registry.cn-chengdu.aliyuncs.com/tnb028'
  97. cd ${proj_dir}/tnb/gateway/
  98. docker build -t ${docker_prefix}/tnbgateway .
  99. docker push ${docker_prefix}/tnbgateway
  100. cd ${proj_dir}/tnb/auth/auth-service/
  101. docker build -t ${docker_prefix}/tnbauth .
  102. docker push ${docker_prefix}/tnbauth
  103. cd ${proj_dir}/tnb/message/message-service/
  104. docker build -t ${docker_prefix}/tnbmessage .
  105. docker push ${docker_prefix}/tnbmessage
  106. cd ${proj_dir}/tnb/file/file-service
  107. docker build -t ${docker_prefix}/tnbfile .
  108. docker push ${docker_prefix}/tnbfile
  109. cd ${proj_dir}/tnb/user/user-service/
  110. docker build -t ${docker_prefix}/tnbuser .
  111. docker push ${docker_prefix}/tnbuser
  112. cd ${proj_dir}/tnb/content/content-service/
  113. docker build -t ${docker_prefix}/tnbcontent .
  114. docker push ${docker_prefix}/tnbcontent
  115. cd ${proj_dir}/tnb/search/search-service/
  116. docker build -t ${docker_prefix}/tnbsearch .
  117. docker push ${docker_prefix}/tnbsearch
  118. cd ${proj_dir}/tnbapp
  119. commit_id=`git rev-parse HEAD | cut -c 1-8`
  120. docker build -t ${docker_prefix}/tnbapp .
  121. docker push ${docker_prefix}/tnbapp
  122. }
  123. echo "创建 proj 目录和 bin 目录..."
  124. create_dirs
  125. echo "clone 项目..."
  126. clone_proj
  127. # echo "构建依赖..."
  128. # build_dependencies
  129. echo "构建 oss 应用..."
  130. build_oss
  131. echo "构建后端应用..."
  132. build_backend
  133. echo "构建前端应用..."
  134. build_front
  135. echo "构建 docker 镜像..."
  136. build_image