build.sh 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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://git.reghao.cn/reghao/jutil
  23. git clone --depth=1 https://git.reghao.cn/reghao/tnb
  24. git clone --depth=1 https://git.reghao.cn/reghao/tnbapp
  25. }
  26. ###############################################################################
  27. # 安装依赖
  28. ###############################################################################
  29. build_dependencies() {
  30. cd ${proj_dir}/jutil
  31. mvn clean install -Dmaven.test.skip
  32. }
  33. ###############################################################################
  34. # 构建后端应用
  35. ###############################################################################
  36. build_backend() {
  37. ###############################################################################
  38. # 构建 tnb 项目 jar 包
  39. ###############################################################################
  40. cd ${proj_dir}/tnb
  41. mvn clean package -Dmaven.test.skip -P${env}
  42. cp eureka/eureka-server/target/tnb-eureka.jar ${bin_dir}
  43. cp gateway/target/tnb-gateway.jar ${bin_dir}
  44. cp account/account-service/target/tnb-account.jar ${bin_dir}
  45. cp user/user-service/target/tnb-user.jar ${bin_dir}
  46. cp message/message-service/target/tnb-message.jar ${bin_dir}
  47. cp file/file-service/target/tnb-file.jar ${bin_dir}
  48. cp content/content-service/target/tnb-content.jar ${bin_dir}
  49. cp data/data-service/target/tnb-data.jar ${bin_dir}
  50. cp search/search-service/target/tnb-search.jar ${bin_dir}
  51. ###############################################################################
  52. # oss-store jar 包
  53. ###############################################################################
  54. if [ ! -d ${bin_dir}/oss-store ]; then
  55. mkdir ${bin_dir}/oss-store
  56. fi
  57. cp oss/oss-store/bin/* ${bin_dir}/oss-store
  58. }
  59. ###############################################################################
  60. # 构建前端应用
  61. ###############################################################################
  62. build_front() {
  63. ###############################################################################
  64. # 构建 tnbapp 项目
  65. ###############################################################################
  66. cd ${proj_dir}/tnbapp
  67. npm --registry http://registry.npm.taobao.org i
  68. npm run build
  69. if [ ! -d ${bin_dir}/tnbapp ]; then
  70. mkdir ${bin_dir}/tnbapp
  71. fi
  72. cp -r dist/* ${bin_dir}/tnbapp
  73. }
  74. ###############################################################################
  75. # 构建 tnb 应用 docker 镜像
  76. ###############################################################################
  77. build_image() {
  78. cd ${proj_dir}/tnb
  79. commit_id=`git rev-parse HEAD | cut -c 1-8`
  80. docker_prefix='tnb'
  81. cd ${proj_dir}/tnb/eureka/eureka-server
  82. docker build -t ${docker_prefix}/eureka:${commit_id} .
  83. cd ${proj_dir}/tnb/gateway/
  84. docker build -t ${docker_prefix}/gateway:${commit_id} .
  85. cd ${proj_dir}/tnb/account/account-service/
  86. docker build -t ${docker_prefix}/account:${commit_id} .
  87. cd ${proj_dir}/tnb/message/message-service/
  88. docker build -t ${docker_prefix}/message:${commit_id} .
  89. cd ${proj_dir}/tnb/file/file-service
  90. docker build -t ${docker_prefix}/file:${commit_id} .
  91. cd ${proj_dir}/tnb/user/user-service/
  92. docker build -t ${docker_prefix}/user:${commit_id} .
  93. cd ${proj_dir}/tnb/content/content-service/
  94. docker build -t ${docker_prefix}/content:${commit_id} .
  95. cd ${proj_dir}/tnb/search/search-service/
  96. docker build -t ${docker_prefix}/search:${commit_id} .
  97. cd ${proj_dir}/tnbapp
  98. commit_id=`git rev-parse HEAD | cut -c 1-8`
  99. docker_prefix='tnb'
  100. docker build -t ${docker_prefix}/tnbapp:${commit_id} .
  101. }
  102. echo "创建 proj 目录和 bin 目录..."
  103. #create_dirs
  104. echo "clone 项目..."
  105. #clone_proj
  106. echo "构建依赖..."
  107. #build_dependencies
  108. echo "构建后端应用..."
  109. # build_backend
  110. echo "构建前端应用..."
  111. # build_front
  112. echo "构建 docker 镜像..."
  113. build_image